Я застрял на этом регулярном выражении.Это соответствует 2 из моих 3 имен файлов.Нужна помощь в получении всех трех, если это возможно.Я также хочу извлечь одно из этих значений abc|def|ghi
, а также ucsb|tech
имя локали до расширения .edu | .net
в переменные.
Хотел бы сделать это за один проход, если это возможно.Спасибо.
/home/test/abc/.last_run_dir
/home/test/def/.last_file_sent.mail@wolverine.ucsb.edu
/home/test/ghi/.last_file_sent.dp3.tech.net
Первая строка не набирается:
/home/test/abc/.last_run_dir
Регулярное выражение:
$line =~ m#home/test/(\w{3}).*[.](\w+)[.].*#
Код:
my $file = 'Index.lst';
open my $FILE, '<', $file or die "unable to open '$file' for reading: $!";
while (my $line = <$FILE>) {
chomp($line);
if ($line =~ m#home/test/(\w{3}).*[.](\w+)[.].*#) {
open my $file2, '<', $line or die "unable to open '$file' for reading: $!";
while(my $line2 = <$file2>) {
print "$line2";
}
close $file2;
}
} #end while
close $FILE;
Кроме того, как распечатать мои возможные совпадения?Если они необязательны?