Perlのpackage入門

自己紹介

Perlのpackage入門

packageを使わないと?

        use strict;

        sub hello {
            print 'Hello! from ' . __PACKAGE__ . "\n";
        }

        hello(); # Hello! from main
    

packageを使わないと?

        use strict;

        sub to_rgb {
            return
                'R: ' . (($_[0] >> 16) & 0xFF) . ', '
              . 'G: ' . (($_[0] >>  8) & 0xFF) . ', '
              . 'B: ' . (($_[0] >>  0) & 0xFF);
        }

        print to_rgb( 0xFF0000 ); # R: 255, G: 0, B: 0
    

packageを使わないと?

packageを使うと?

        use strict;

        package ColorDumper;
        sub to_rgb {
            return
                'R: ' . (($_[0] >> 16) & 0xFF) . ', '
              . 'G: ' . (($_[0] >>  8) & 0xFF) . ', '
              . 'B: ' . (($_[0] >>  0) & 0xFF);
        }

        package main;
        print ColorDumper::to_rgb( 0xFF0000 ); # R: 255, G: 0, B: 0
    

packageを使うと?

packageを使うと?

        use strict;

        package ColorDumper;
        sub to_rgb {
            return
                'R: ' . (($_[0] >> 16) & 0xFF) . ', '
              . 'G: ' . (($_[0] >>  8) & 0xFF) . ', '
              . 'B: ' . (($_[0] >>  0) & 0xFF);
        }

        package main;
        my $func = \&ColorDumper::to_rgb;
        print $func->( 0xFF0000 ); # R: 255, G: 0, B: 0
    

packageを使うと?

        use strict;

        sub ColorDumper::to_rgb {
            return
                'R: ' . (($_[0] >> 16) & 0xFF) . ', '
              . 'G: ' . (($_[0] >>  8) & 0xFF) . ', '
              . 'B: ' . (($_[0] >>  0) & 0xFF);
        }

        my $func = \&ColorDumper::to_rgb;
        print $func->( 0xFF0000 ); # R: 255, G: 0, B: 0
    

5.16の場合

        use strict;
        package ColorDumper {
            sub to_rgb {
                return
                    'R: ' . (($_[0] >> 16) & 0xFF) . ', '
                  . 'G: ' . (($_[0] >>  8) & 0xFF) . ', '
                  . 'B: ' . (($_[0] >>  0) & 0xFF);
            }
        }

        my $func = \&ColorDumper::to_rgb;
        print $func->( 0xFF0000 ); # R: 255, G: 0, B: 0
    

まとめ(1)

        package ColorDumper;
        use strict;

        sub to_rgb {
            return
                'R: ' . (($_[0] >> 16) & 0xFF) . ', '
              . 'G: ' . (($_[0] >>  8) & 0xFF) . ', '
              . 'B: ' . (($_[0] >>  0) & 0xFF);
        }

        1;
    

まとめ(2)

        use strict;

        use ColorDumper;

        my $func = \&ColorDumper::to_rgb;
        print $func->( 0xFF0000 ); # R: 255, G: 0, B: 0
    

まとめ(3)

  1. 「続・初めてのPerl」がオススメ!

    このスライドのネタ元はこの本

  2. 次は、Exporter?

    どなたかお願いします

宣伝

8/24発売予定!(北海道は入荷が少し遅れるよ!!)

WEB+DB PRESS Vol.70

ご静聴、ありがとうございました

/

#