Memoize

BasicWerk   EC Support   Technique   Facebook  

20141119204221_Perl_do

Perl_do

 

 

do ブロックは(サブルーチンなどと同じように)ブロックの最後の値をリターンする。

だから、例えば、

 
my $opt = shift @ARGV;
my $ret = "";
if ( $opt ) {
    $ret = "True";
}
else {
    $ret = "False";
}
print "$ret\n";
 

と書くところを以下のように書ける。

 

do.pl
 
#! /usr/bin/perl
use warnings;
use strict;
 
my $opt = shift @ARGV;
my $ret = do {
    if ( $opt ) {
        "True";
    }
    else {
        "False";
    }
};
 
print "$ret\n";
 

 

 
% do.pl
False
 
% do.pl 1
True
 

 


© Shin Nakamura/BasicWerk 2014