TOP - Perl - 関数 - reset

グローバル変数や??演算子をリセットします。

reset 式1
式1 : リセットされる変数の先頭の文字を指定する式
      省略した場合は演算子??をリセット

(例1)
$aaa = "aaa";
$bbb = "bbb";
$ccc = "ccc";
$ddd = "ddd";
$eee = "eee";
$fff = "fff";
$ggg = "ggg";

print $aaa . $bbb . $ccc . $ddd . $eee . $fff . $ggg . "\n";

reset "a";                 # 先頭の文字がaの変数をリセット

print $aaa . $bbb . $ccc . $ddd . $eee . $fff . $ggg . "\n";

reset "bc";                # 先頭の文字がbとcの変数をリセット

print $aaa . $bbb . $ccc . $ddd . $eee . $fff . $ggg . "\n";

reset "d-f";               # 先頭の文字がdからfの変数をリセット

print $aaa . $bbb . $ccc . $ddd . $eee . $fff . $ggg . "\n";
実行結果
aaabbbcccdddeeefffggg
bbbcccdddeeefffggg
dddeeefffggg
ggg

(例2)
$n = 0;
$a = "abcdefg";

while (($a =~ ?def?) && ($n < 5))
{
    print "マッチ\n";
    $n++;
}

reset;
$n = 0;
while (($a =~ ?def?) && ($n < 3))
{
    print "マッチ(リセット有り)\n";
    reset;                                # ??演算子をリセット
    $n++;
}
実行結果
マッチ
マッチ(リセット有り)
マッチ(リセット有り)
マッチ(リセット有り)

(例3)
$a_1 = "aaa";
my $a_2 = "bbb";                        # こちら側はmyを使用して宣言

print $a_1 . " : " . $a_2 . "\n";

reset "a";

print $a_1 . " : " . $a_2 . "\n";       # myを利用した方はリセットされない
実行結果
aaa : bbb
 : bbb


Copyright(C) 2006-2018 CLAYPOT. All Rights Reserved.