gudn tach!
Warum geht es nicht so:
if ($line =~ /[\w-]+\s+\w+\s+\w+\s+\w+\s+\w+\s+\w+\s+\w+\s+(\w+)\s+(?!SMPL)/ )
{
print "$line => $1";
}
das kannst du selbst ganz einfach herausfinden:
$_='X-A ca 1 19 101 10 1 a1f SMPL blabla';
print '>'.$&.'<' if /[\w-]+\s+\w+\s+\w+\s+\w+\s+\w+\s+\w+\s+\w+\s+(\w+)\s+(?!SMPL)/;"
# prints: >ca 1 19 101 10 1 a1f SMPL <
wenn's noch nicht klar ist:
$_='X-A ca 1 19 101 10 1 a1f SMPL blabla';
print '>'.$1.'<' if /([\w-]+)\s+\w+\s+\w+\s+\w+\s+\w+\s+\w+\s+\w+\s+(\w+)\s+(?!SMPL)/;"
# prints: >ca<
je nach genauem problem koennte es dir evtl. helfen, mit "^" einen anker beim stringbeginn zu werfen, also
/[1]+.../
prost
seth
\w- ↩︎