У меня работает.
Я переписал код в соответствии с принятыми лучшими практиками, просто чтобы вы не застряли с использованием Perl старого стиля.
#!/usr/bin/perl
use strict;
use warnings;
open( my $in, '<', $ARGV[0]) or die "cannot open '$ARGV[0]': $!";
my @Llist=<$in>;
close ($in);
my @lc_word = map { lc } @Llist;
print @lc_word
Дополнительные примечания: что такое кодировка файла? Если это чистый ASCII, то это будет работать, в противном случае вам нужно будет указать кодировку в open
, например, для файла utf8: open( my $in, '<:utf8', $ARGV[0])
. Кроме того, хулиганство всего файла в памяти с my @Llist=<$in>;
несколько осуждается, хотя в любом случае у вас в любом случае будет весь нижний регистр в памяти.
Если вы хотите, чтобы строчная буква исходного массива (Llist), то вам нужно заменить map
на foreach my $word(@Llist) { $word= lc $word; }