#!/usr/bin/env perl
use strict;
use warnings;
my %temp;
my $file = "input.txt";
open my $fh, '<', $file or die "File Cannot be Opened";
while (my $line = <$fh>) {
chomp $line;
foreach my $str (split /\s+/, $line) {
$temp{$str}++;
}
}
foreach my $str (sort keys %temp) {
print $str." occurs ". $temp{$str}." times"."\n";
}
Pertama-tama, kita men-define variable hash %temp untuk menyimpan daftar seluruh kata-kata yang muncul. Tipe variable dalam Perl lebih jauh dapat dipelajari disini. Silahkan define juga nama file yang akan kita baca. Disini kita akan mengakses dokumen "input.txt".
my %temp;
my $file = "input.txt";
open my $fh, '<', $file or die "File Cannot be Opened";
Berikutnya, line ini akan melakukan looping untuk setiap baris dalam file "input.txt".
Untuk setiap line tersebut, kita akan melakukan splitting based on karakter spasi ' '. Untuk setiap kata yang dihasilkan dari proses splitting tersebut, akan disimpan ke dalam hash (key, value). Setiap kemunculan key dalam hash, value-nya akan ditambah 1.
while (my $line = <$fh>) {
chomp $line; #hapus semua whitespace \n
foreach my $str (split /\s+/, $line) {
$temp{$str}++;
}
}
Line berikut akan melakukan looping ke seluruh hash, lalu mencetak isinya:
foreach my $str (sort keys %temp) {
print $str." occurs ". $temp{$str}." times"."\n";
}
Hasilnya adalah sebagai berikut:
10 occurs 1 times
12 occurs 1 times
15 occurs 1 times
19 occurs 2 times
20 occurs 1 times
26 occurs 1 times
3 occurs 1 times
35 occurs 1 times
42 occurs 1 times
7 occurs 2 times
9 occurs 1 times
Bill: occurs 1 times
Jeff: occurs 1 times
Jill: occurs 1 times
John: occurs 2 times
Linda: occurs 1 times
Pam: occurs 1 times
Phil: occurs 1 times
Sam: occurs 1 times
Sue: occurs 1 times
Team occurs 3 times
Selamat mencoba!
No comments:
Post a Comment