Perl的do語句塊結構

2021-09-07 19:58:57 字數 844 閱讀 3611

do語句塊結構如下:

do
do語句塊像是匿名子程式一樣,沒有名稱,給定乙個語句塊,直接執行。且和子程式一樣,do語句塊的返回值都是最後乙個執行的語句的返回值。

例如,將使用if-elsif-else結構進行賦值的行為改寫成do。以下是if-elsif-else結構:

my $name;

if($gender eq "male") elsif ($gender eq "female") else

改寫成do結構:

my $name=do

elsif($gender eq "female")

else

}; # 注意結尾的分號

在perl中,使用表示式修飾符改寫流程控制結構的時候,控制符左邊只能寫乙個語句。例如下面的if,左邊有了print後,就不能再有其它語句。

print "..." if(...);
使用do結構,可以將多個語句包圍,然後執行:

#!/usr/bin/perl

use 5.010;

$a=3;

do if $a > 2;

因為do有自己的**塊,有時候可以在這個**塊中使用自己的私有變數。

例如,讀取乙個檔案,將檔案中的內容賦值給乙個變數。(涉及到後面的內容,看不懂請跳過)

my $file_content = do ;
或者:

my $file_content = do ;

Perl的do語句塊結構

do語句塊結構如下 dodo語句塊像是匿名子程式一樣,沒有名稱,給定乙個語句塊,直接執行。且和子程式一樣,do語句塊的返回值都是最後乙個執行的語句的返回值。例如,將使用if elsif else結構進行賦值的行為改寫成do。以下是if elsif else結構 my name if gender e...

perl 中的 foreach 語句

最近在用 perl 來編寫 生成器 的過程中多次遇到對 foreach 語句使用不當的問題。對於這個問題,我在第一次遇到時覺得自己在寫 時沒有想太明白,再次遇到同乙個問題,我覺得很有必要在這裡記錄一下,既為了加深對此問題的印象,也能夠給其他 perl 的初學者提供參考。我這裡提及的 生成器 其實非常...

C中的語句塊

c語言中的語句塊 statement block 其實就是由 括起來的若干條語句。如 複製 這就是乙個語句塊,這個語句塊可以放到函式內,作為函式的乙個小單元。要注意的是,語句塊中也可以定義區域性變數,和函式的區域性變數同樣道理,每次進入語句塊時為變數i分配儲存空間,每次退出語句塊時釋放變數i的儲存空...