m_shige1979のときどきITブログ

プログラムの勉強をしながら学習したことや経験したことをぼそぼそと書いていきます

Github(変なおっさんの顔でるので気をつけてね)

https://github.com/mshige1979

Perl入学式in東京 #4に参加しました

場所

東京都品川区西五反田3-5-20

日時

2013/10/19(土)13:00-17:00

どんなこと

Perlの超初心者をベースにしたお話
ハンズオン形式で行うのでPCなどの環境が必須

サポーター陣

かなりたくさんいた。あまり人の名前や顔を覚えるのが苦手なので4人くらいしか覚えていなかった。
YAPC::Asiaでは覚えていないが、Perlビギナーズでちょっとだけ顔を覚えていたので思い出すことができました。

水あった

会場となる9AB会議室付近に自販機はありません. 飲料等は事前にお買い求め下さい.

とかあったのですが、水が会場にあってちょっとびっくりしました。
まあ、ジュースやお茶を飲みたい人もいるでしょうからいろいろあったでしょうが

サブルーチン

sayテスト
#!/usr/bin/env perl

use strict;
use warnings;

####################
# テスト
####################
# サブルーチン
sub say{
    my $str = shift @_;
    print $str. "\n";
}

sub say2{
    my $str = shift;
    print $str. "\n";
}

say("ほげ");
say("11111111111");

my $aaa = "bbbbbbb";

say($aaa);

say2("vvvvvvvvvvvvvvvvvvvvvvvvvvv");
四則演算
#!/usr/bin/env perl

use strict;
use warnings;

sub say{
    my $str = shift @_;
    print $str . "\n";
}

sub add{
    my ($aaa, $bbb) = @_;
    return $aaa + $bbb;
}

sub min{
    my ($aaa, $bbb) = @_;
    return $aaa - $bbb;
}

sub mul{
    my ($aaa, $bbb) = @_;
    return $aaa * $bbb;
}

sub div{
    my ($aaa, $bbb) = @_;
    if($bbb == 0){
        return "除算失敗でーす";
    }
    return $aaa / $bbb;
}

# 計算
say "add:" . add(100, 20);
say("");

say "min:" . min(100, 20);
say("");

say "mul:" . mul(100, 20);
say "mul:" . mul(100, 0);
say "mul:" . mul(0, 20);
say("");

say "div:" . div(100, 20);
say "div:" . div(100, 0);
say "div:" . div(0, 20);
say("");
@配列や%ハッシュをサブルーチンに渡す
#!/usr/bin/env perl

use strict;
use warnings;

my @list1 = ("aaa", "bbb", "ccc");
my %list2 = (
    "key1" => "aaaa",
    "key2" => "bbbb"
);

sub output_array{
    # 引数を取得
    my($list1, $list2) = @_;

    for my $val(@{$list1}){
        print $val . "\n";
    }

    while(my ($key, $val) = each %{$list2}){
        print $key . "=>" . $val . "\n";
    }

    foreach my $key (keys %{$list2}){
        print $key . "=>" . $list2->{$key} . "\n";
    }

}

output_array(\@list1, \%list2);

正規表現

#!/usr/bin/env perl

use strict;
use warnings;

print "start" . "\n";

while(chomp(my $input = <STDIN>)){

    print $input . "\n";
    if($input =~ /[0]/){
        last;
    }
    if($input =~ /[pP]erl/){
        print "    Find Perl!" . "\n";
    }

    if($input =~ /python/i){
        print "    Find Python!" . "\n";
    }

    if($input =~ /(perl)|(ruby)|(python)/){
        print "    Love Programing!" . "\n";
    }
}

print "end" . "\n";

まとめ

前回はYAPCでの会場でいろいろなゴタゴタがあってちょっと時間がかかりましたが、今回は時間通りに終わった感じでした。
なんかパピックス?さんのお話が速く感じたけどちょうどいいような感じもした。

とりあえず、リファレンスについては「とにかく数をこなすこと」、正規表現は勉強すること

なんかよくみた変態チックなメールの正規表現はちょっとビビった。実際使う人いないよなー?と信じたい