grep
とmap
をperlで一度に実行する方法はありますか?perl:grepとmapを一度に実行
my $files = [ { path=>'/path/to/file1',
size=>123},
{ path=>'/path/to/file2',
size=>987},
{ path=>'/path/file3',
size=>1234},
{ path=>'/path/to/file4',
size=>543},
{ path=>'/path/to/my/file5',
size=>1357} ];
my @large = grep { $_->{size} > 1024 } $files;
my @large_filepaths = map { $_->{path} } @large;
:私はしたい特定の値を取得する
map
そして、Perlで
files = [{ 'path':'/path/to/file1',
'size':123},
{ 'path':'/path/to/file2',
'size':987},
{ 'path':'/path/file3',
'size':1234},
{ 'path':'/path/to/file4',
'size':543},
{ 'path':'/path/to/my/file5',
'size':1357}]
large_filepaths = [file['path'] for file in files if file['size'] > 1024]
を、私は大容量のファイルをフィルタリングするgrep
を実行する必要があります。Pythonはリスト内包を実行できる方法と同様に
1つの操作でこれを実行する簡単な方法がありますか、2つのステートメント(または1つの複合ステートメント)を使用する必要がありますか?
grep {$ _-> {size}> 1024} $ files; '...それはあなたを悲しくする可能性があります。あなたは '@ $ files'のように' $ files'を逆参照するか、私の好きな新しい構文 '$ files - > @ *'を使う必要があります。 –