Created by sironekotoro 2018-07-22 View revision File love_food.pl Added Side-by-side diff More Ignore whitespace Hide word diff +#!/usr/bin/env perl +use strict; +use warnings; + +# Perl入学式 2018 第4回 練習問題 +# https://github.com/perl-entrance-org/workshop-2018/blob/master/4th/slide.md +# 練習問題(love_food.pl) + +my $words_ref = [ + 'alice loves meat!', + 'bob loves sushi!', +]; + +# このような配列のリファレンスを受け取り, +# リファレンスに格納された文字列について, +# 「loves」の後に記述されている好きな食べ物の単語を +# 正規表現で取得し, +# 「alice -> meat」, 「bob -> sushi」のように +# 表示するサブルーチン, love_foodを書いてみよう. + +love_food($words_ref); + +sub love_food { + + # 引数を取得する + my $word_ref = shift @_; + + # 配列リファレンスをデリファレンスして配列にする + my @array = @{$word_ref}; + + for my $line (@array) { + # 名前と食べ物がマッチする正規表現を書く + $line =~ /(.+) loves (.+)/; + print $1 . " -> " . $2, "\n"; + } +}