나는이 펄 스크립트를 가지고 있습니다
#!/usr/bin/perl
use strict;
open my $df, '<', 'file.txt' or die "open: $!\n";
my %h;
while (<$df>) {
$h{$_}++ for split /\s+/;
END{
for (keys %h){
print $_, "=", $h{$_};
print "\n";
}
}
}
파일에 있는 각 단어의 발생 횟수를 인쇄합니다. 몇 가지 질문이 있습니다.
1) 사용자가 매개변수를 파일 이름으로 사용하도록 하여 이 스크립트를 동적으로 만드는 방법
지금:
perl script.pl
원함:
perl script.pl fileName
2) 출력물을 내림차순으로 정렬하는 방법은 무엇입니까?
참고: 발생을 기준으로 정렬하고 싶습니다.
답변1
나는 무엇을 할 것인가:
#!/usr/bin/perl
use strict;
my %h;
while (<>) {
$h{$_}++ for split /\s+/;
END{
for (sort { $h{$b} <=> $h{$a} } keys %h){
print $_, "=", $h{$_};
print "\n";
}
}
}
그래서:
./script input_file