Created by
sironekotoro
| #!/usr/bin/env perl
use strict;
use warnings;
# Perl入学式 2018 第4回 練習問題
# https://github.com/perl-entrance-org/workshop-2018/blob/master/4th/slide.md
# 練習問題(output_array_and_hash.pl)
# 配列とハッシュをそれぞれ1つずつ定義してから,
# 第1引数に配列のリファレンス,
# 第2引数にハッシュのリファレンスを受け取り,
# その中身を出力する(for文などを利用して...),
# output_array_and_hashというサブルーチンを
# 書いてみよう.
# @array:a〜gをの文字を格納した配列
my @array = qw(a b c d e f g);
# %hash :keyにTV局の略称、valueに地デジの
# リモコンキーID(東京)を設定したハッシュ
my %hash = (
nhk => 1, # NHK総合
etv => 2, # Eテレ
ntv => 4, # 日本テレビ
ex => 5, # テレビ朝日
tbs => 6, # TBSテレビ
tx => 7, # テレビ東京
ftv => 8 # フジテレビ
);
# 先頭に\をつけて、リファレンス化した配列とハッシュを
# 引数にして配列を呼び出す
# リファレンス化しないと配列やハッシュといったデータ構造を
# 維持してサブルーチンの中に取り込めない
output_array_and_hash( \@array, \%hash );
# サブルーチンの定義
sub output_array_and_hash {
# 引数を取得する
my ( $array_ref, $hash_ref ) = @_;
# 配列リファレンスをデリファレンスして配列にする
my @array = @{$array_ref};
# for文で配列の中身を出力する
for my $char (@array) {
print $char , "\n";
}
# 区切り線
print '-' x 10, "\n";
# ハッシュリファレンスからkeyを取り出す
# keys関数の引数にはデリファレンスした
# ハッシュを渡す(%{$hash_ref})
for my $key ( keys %{$hash_ref} ) {
# ハッシュリファレンスからアロー演算子で
# keyに対応するvalueを表示する
print $key , ":", $hash_ref->{$key}, "\n";
}
print '-' x 10, "\n";
# # ハッシュ2
# # ハッシュリファレンスをデリファレンして
# ハッシュに戻してからwhile文を利用した方法
#
# my %hash = %{$hash_ref};
# while ( my ( $key, $value ) = each %hash ) {
# print "$key : $value\n";
# }
}
|