Skip to content

Instantly share code, notes, and snippets.

@sironekotoro
Created July 13, 2019 08:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sironekotoro/15e39d566ccc399c214888903bf4fa80 to your computer and use it in GitHub Desktop.
Save sironekotoro/15e39d566ccc399c214888903bf4fa80 to your computer and use it in GitHub Desktop.
Perl入学式 2019第3回 最終問題
#!/usr/bin/env perl
use strict;
use warnings;
use Data::Dumper;
# japan
# ├─ tokyo
# │ ├─ gotanda
# │ └─ shibuya
# ├─ osaka
# │ └─ shinsaibashi
# ├─ okinawa
# │ ├─ naha
# │ └─ yomitan
# ├─ hokkaido
# │ ├─ sapporo
# │ └─ obihiro
# └─ fukuoka
# └─ hakata
my %japan = ();
# 無名配列を入れる方法
$japan{tokyo} = [ 'gotanda', 'shibuya' ];
# 配列をリファレンス化して入れる方法
my @osaka = ('shinsaibashi');
my $osaka_ref = \@osaka;
$japan{osaka} = $osaka_ref;
# 配列リファレンスにプッシュして入れていく
push @{ $japan{okinawa} }, 'naha';
push @{ $japan{okinawa} }, 'yomitan';
$japan{hokkaido} = [ 'sapporo', 'obihiro' ];
$japan{fukuoka} = [ 'hakata' ];
# 作成したデータから tokyo に含まれる gotanda, shibuyaを表示してください
## 直接指定して表示
# print $japan{tokyo}->[0] . "\n";
# print $japan{tokyo}->[1] . "\n";
## for文で表示
# for my $place ( @{$japan{tokyo}} ){
# print $place . "\n";
# }
# 作成したデータの osaka に umedaを追加してください
push @{$japan{osaka}} , 'umeda';
# 作成したデータの okinawa に piyoを追加してください
$japan{okinawa}->[2] = 'piyo';
# 作成したデータの hokkaido に chitoseを追加し, sapporoを削除してください
push @{$japan{hokkaido}} , 'chitose';
shift @{$japan{hokkaido}};
# 作成したデータの fukuoka を削除してください
delete $japan{fukuoka};
# Data::Dumperでデータ構造を表示してください
print Dumper \%japan;
# 全ての要素を表示
# for my $region (keys %japan){
# print $region . "\n";
#
# デリファレンスして() の中に入れる
# for my $city ( @{$japan{$region}} ){
# print " $city" . "\n";
# }
# }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment