#! usr/bin/perl
use strict;
use warnings;
#◎配列の要素のうち、重複するものをhashを使ってひとつにまとめる
my %uniq;
my @array = (3,5,7,8,9,7,8,7,9,1,3,'papa','mama','koma','papa','koma','Koma');
#my @array = (3,5,7,8,9,7,8,7,9,1,3,'papa,mama,koma,papa,koma,Koma');#下のforeachを実行したときの出力結果=>8 1 3 papa,mama,koma,papa,komaKoma 7 9 5=>「''」で囲んだ部分がひとつの文字列と認識されている。
foreach my $item(@array){
$uniq{$item}=1;
}
my @uniqarray=keys(%uniq);
print "@uniqarray\n";#出力結果=>koma papa Koma 3 7 9 8 1 5 mama
print "\n";
#◎配列の要素のうち、同じものが何個あるか数える
my %counter;
#同じキーがあれば、値が1ずつ増加していく(hashは、キーがかぶると値が上書きされる性質を利用)
foreach my $key (@array){
$counter{$key}=$counter{$key}+1;
}
#カウントした回数(値)をキーとともに出力
foreach my $key (sort(keys(%counter))){
print "$key→$counter{$key}回\n";
}
print "\n";
#◎キーと値の交換
my %hash1=(
'koma'=>55,
'gema'=>11,
'bsba'=>35,
'italy'=>777,
'france'=>454,
9=>'hello'
);
my %hash2;
#交換する前をprint
foreach (keys(%hash1)){
print "$_→$hash1{$_}\n";
}
print "\n";
#交換してprint
foreach my $atai(keys(%hash1)){
$hash2{$hash1{$atai}}=$atai;
}
foreach (keys(%hash2)){
print "$_→$hash2{$_}\n";
}
print "\n";
#◎perlでは、全ての環境変数は%ENVで表現されている⇒環境変数PATHの表示
print $ENV{'PATH'}."\n\n";#改行なしででてくる
#改行して箇条書きスタイルでprint
foreach (split(/;/,$ENV{'PATH'})){
print "$_\n";
}
#◎全ての環境変数をprint
foreach (keys(%ENV)){
print "$_→$ENV{$_}\n";
}