Другие отметили вашу проблему с my
.
Хочу отметить, что ваш код замещения не совсем соответствует вашей спецификации.
Он удалит все вхождения строки .log
из вашего имени файла.
Если вы хотите удалить только .log
в конце вашей строки, не используйте модификатор g
и используйте привязку конца строки $
:
use strict;
use warnings;
my $file = "ooout.logical.log";
print "$file\n";
$file =~ s/\.log$//;
print "$file\n";
__END__
ooout.logical.log
ooout.logical