switch文がほすぃ (perl)

Filed in Perl, prog

 今までのエントリでも書いた様に只今Perlでもにょもにょしてるわけですが。
 なんかね、if-elsif-elseブロック書いてると欲しくなるんですよswitch文。
 そこで擬似的に実現する方法を考えてみますた。
  1.ブロックを利用する方法
my $var = 検査される値;
switch:{
  $var =~ /条件文字列/ && do{
    処理;
    last switch;
  }
}
 2.配列やハッシュを利用する方法
$var = 検査される値;
@switch_a = {
  &{ 処理; },
};
&{$switch_a[$var]};
%switch_h = (
  key => &{ 処理; },
);
&{$switch_h{$var}};
 ハッシュを使った方法なんかは割と多用しとります。
 例えばCGIなんかでモード毎の処理に飛ばすときなんかは以下の様にやります。
%command_do = (
  RSS => \&do_RSS,
  write => \&do_write,
);
&{$command_do{$mode}};
sub do_RSS{
  (snip)
}
sub do_write{
  (snip)
}
 これ割と重宝します。YukiWikiなんかでも使われてます。
 興味有る方お試しあれ。

一体何処で何をどう間違えたのか……orz

Filed in 日記

 前にも書いたHTMLテンプレスクリプト。気が付けばWiki化してきてる。
 何故こんな事に……orz


Warning: sprintf() [function.sprintf]: Too few arguments in /home/users/2/lolipop.jp-dp07042166/web/wordpress/wp-includes/widgets.php on line 1042
Oenology Post Formats
Click to view/hide

Warning: sprintf() [function.sprintf]: Too few arguments in /home/users/2/lolipop.jp-dp07042166/web/wordpress/wp-includes/widgets.php on line 1042
Posts Calendar
Click to view/hide
2005年1月
    2月 »
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

Warning: sprintf() [function.sprintf]: Too few arguments in /home/users/2/lolipop.jp-dp07042166/web/wordpress/wp-includes/widgets.php on line 1042
アーカイブ
Click to view/hide

Warning: sprintf() [function.sprintf]: Too few arguments in /home/users/2/lolipop.jp-dp07042166/web/wordpress/wp-includes/widgets.php on line 1042
最近の投稿
Click to view/hide