Не уверен, что не так в моем скрипте perl. не в состоянии соответствовать конец строки с использованием регулярных выраженийPerl reg выражение для соответствия концу строки не работает
[[email protected] SISPortal]$ forever logs
info: Logs for running Forever processes
data: script logfile
data: [0] server /home/rmdev01/.forever/WusC.log
data: [1] Server /home/rmdev01/.forever/2hai.log
сценарий:
[[email protected] SISPortal]$ cat forever.pl
#! /usr/bin/perl
@logs=`forever logs`;
chomp(@logs);
foreach my $log (@logs)
{
print "checking log at end of string $log\n";
if ($log =~ /log$/)
{
print "$log\n";
}
}
Выход сценария:
[[email protected] SISPortal]$ ./forever.pl
checking log at end of string info: Logs for running Forever processes
checking log at end of string data: script logfile
checking log at end of string data: [0] server /home/rmdev01/.forever/WusC.log
checking log at end of string data: [1] Server /home/rmdev01/.forever/2hai.log
Может ли быть пробел перед разрывом? Попробуйте '/ log \ s * $ /' и проверьте, сохраняется ли ошибка. –
@TimPietzcker: он сработал. но почему есть пробелы даже после chomp. –
Насколько я знаю, 'chomp()' только удаляет символы новой строки, но никаких других символов пробелов. –