Perl で配列から特定の要素を取得しようとしていますが、コードが機能しません
print "Enter the column numbers you want separated by comma ";
$temp=<>;
@shortdays = qw/Mon Tue Wed Thu Fri Sat Sun/;
@weekdays = @shortdays[scalar $temp];
print @weekdays;
use strict;
use warnings;
my @shortdays = qw'Mon Tue Wed Thu Fri Sat Sun';
print "Enter the column numbers you want\n";
my $line = <STDIN>;
my @ids = $line =~ /[0-7]/g;
my @days = @shortdays[ @ids ];
print join( ', ', @days ), "\n";
$line
とは 1 回だけ必要なので、@ids
それらを使用せずに済ませることができます。
# my $line = <STDIN>;
# my @ids = $line =~ /[0-7]/g;
# my @days = @shortdays[ @ids ];
my @days = @shortdays[ <STDIN> =~ /[0-7]/g ];
なぜ/[0-7]/g
あなたは尋ねるかもしれません。
/g
一致のリストが表示されます。正規表現は 1 桁の数字のみに一致するため、ユーザーが数字を区切るために何を使用する必要があるかを指定する必要はありません。実際、(この場合) ユーザーはそれらを分離する必要さえありません。