| 24 | | That's all |
| | 22 | コピペしたいなあ…… |
| | 23 | ---- |
| | 24 | そこで |
| | 25 | ---- |
| | 26 | Module::Compile::TT |
| | 27 | ---- |
| | 28 | >|| |
| | 29 | sub foo { |
| | 30 | my $self = shift; |
| | 31 | $self->{foo} = shift if @_; |
| | 32 | $self->{foo}; |
| | 33 | } |
| | 34 | sub bar { |
| | 35 | my $self = shift; |
| | 36 | $self->{bar} = shift if @_; |
| | 37 | $self->{bar}; |
| | 38 | } |
| | 39 | ||< |
| | 40 | ---- |
| | 41 | >|| |
| | 42 | use tt ( fields => [qw/foo bar/] ); |
| | 43 | [% FOREACH fields IN fields %] |
| | 44 | sub [% field %] { |
| | 45 | my $self = shift; |
| | 46 | $self−>{'[% field %]'} = shift if @_; |
| | 47 | $self−>{'[% field %]'}; |
| | 48 | } |
| | 49 | [% END %] |
| | 50 | no tt; |
| | 51 | ||< |
| | 52 | ---- |
| | 53 | ソースコードフィルタ |
| | 54 | ---- |
| | 55 | すばらしいですね |
| | 56 | ---- |
| | 57 | たとえば |
| | 58 | ---- |
| | 59 | >|| |
| | 60 | sub get { |
| | 61 | my ($self, $key) = @_; |
| | 62 | $self->{$key}; |
| | 63 | } |
| | 64 | ||< |
| | 65 | ---- |
| | 66 | use Method::Signatures; |
| | 67 | ---- |
| | 68 | >|| |
| | 69 | method get($key) { |
| | 70 | $self->{$key}; |
| | 71 | } |
| | 72 | ||< |
| | 73 | ---- |
| | 74 | Perl に実行時に動的に |
| | 75 | パッチをあてている! |
| | 76 | ---- |
| | 77 | すばらしいですね |
| | 78 | ---- |
| | 79 | たとえば |
| | 80 | ---- |
| | 81 | Switch 文をかきたいケド |
| | 82 | Perl には Switch がない |
| | 83 | ---- |
| | 84 | if 文いっぱいかくのめんどい |
| | 85 | ---- |
| | 86 | use Switch; |
| | 87 | ---- |
| | 88 | >|| |
| | 89 | switch ($val) { |
| | 90 | case 1 { print "number 1" } |
| | 91 | case "a" { print "string a" } |
| | 92 | case /\w+/ { print "pattern" } |
| | 93 | } |
| | 94 | ||< |
| | 95 | ---- |
| | 96 | ソースコードフィルタって |
| | 97 | すばらしいですね |
| | 98 | ---- |
| | 99 | SQL を楽に書きたい |
| | 100 | ---- |
| | 101 | >|| |
| | 102 | for my $row (SELECT * FROM t;) { |
| | 103 | print "v: $row[0]\n"; |
| | 104 | } |
| | 105 | ||< |
| | 106 | ---- |
| | 107 | 実にすばらしいですね!!! |
| | 108 | ---- |
| | 109 | まとめ |
| | 110 | ---- |
| | 111 | Perl の柔軟性は神! |