Perl中以my開頭的語句,my是什麼作用

2022-05-30 12:45:20 字數 3301 閱讀 4143

1樓:人設不能崩無限

像c語言中有作用域的概念,比如一個百在函式中定義的變數,在函式外是無效的。perl也有作用域的概念,perl定義的變數默問認是全域性的,當在定義變數時使用。

perl借取了c、sed、awk、shell指令碼語言以及很多其他程式語言的特性,其中最重要的特性是它內部整合了正規表示式的功能,以及巨大的第三方**庫cpan。簡而言之,perl像c一樣強大,像awk、sed等指令碼描述語言一樣方便,被perl語言愛好者稱之為「一種擁有各種語言功能的夢幻指令碼語言」、「unix中的王牌工具」。

2樓:

our,"把名字限於某個範圍「,其實就是明確宣告一個"全域性變數",雖然是在某個模組或者函式裡面定義的,外面的也可以訪問,如果已經宣告過了,再次用"our",表示此處用的是全域性的那個,不是同名的私有或者區域性變數

our $program_name = "waiter";

# 這裡執行的**看到的仍然是"server".

my ,"把名字和值都限於限於某個範圍",簡單說,就是隻能本層模組或者函式可以看到這個變數,高一層的或者低一層的都看不到的。

sub greeting1

sub greeting2

$hello = "how are you doing?";

greeting2();

greeting1();

greeting2();

執行結果:

how are you doing?

how are you doing?

how are you doing?

--------------------------

一個 how are you do? 都沒有,在greeting1中call greeting2時,greeting2看不到greeting1的私有 $hello變數,只能看到外面的全域性變數$hello

local,"把值侷限於某個範圍",也有叫"動態詞法範圍",有點不好懂。我的理解,就是本層和本層下層的函式可以看到本層的變數,但是本層上一層的不可以。到底範圍是多少,不僅取決於本層的函式,還要看下一層的程式長度和深度,所以叫"動態範圍"。

sub greeting1

sub greeting2

$hello = "how are you doing?";

greeting2();

greeting1();

greeting2();

執行結果:

how are you doing?

how are you do?

how are you doing?

-----------------------

跟用 my 時不一樣了吧? 此時在greeting1呼叫greeting2時,greeting2可以看到greeting1的區域性變數$hello,外部的全域性變數當然就隱藏了。

3樓:陽光上的橋

my是關鍵字,表示定義區域性變數,你試試取消my看,如果在嚴格語法下會出錯,否則my的語句都可以取消。

perl中的正規表示式(my $me = $0) =~ s#.*[\/|\\]##; 是什麼意思?

4樓:匿名使用者

(my $me = $0) =~ s#.*[\/|\\]##;

把所有 /或者\ 前面(包括/或者\)的字元去掉

(my $mepref = $me) =~ s#(.*).pl#$1#;

表示去掉.pl字尾名。

在s///操作符中,可以用#、!等來作為分隔符。

(my $mepref = $me) =~ s#(.*).pl#$1#;

也可以寫為(my $mepref = $me) =~ s/(.*).pl/$1/;

$me是用來控制該指令碼在cmd中執行,而不是在cygwin中執行。是這個意思。

perl裡面定義函式開始都寫個my $self= shift,有什麼用?

perl中「my $content=shift;」什麼意思?

5樓:匿名使用者

shift函式是取陣列的第一個元素,預設就取@_的第一個函式,這句一般用在程式的開頭,用於接收程式的引數,或者子函式的開頭,用於接收子函式的引數。

6樓:匿名使用者

把指令碼後面跟的第一個引數移除,並賦給$content

7樓:

先舉個列子:

上文應該這樣的吧

sub function

下文應該是這樣

function ( "haha!" )

執行後會出現 haha!

首先要明白, shift 是將陣列的第一個元素 $array[0] 移走, 並將這個元素回傳(return).

@arr = ( 1,2,3,4 );

my $str = shift @arr;

現在 $str是 1, @arr 是 ( 2,3,4 )當你將一些 資料 傳入涵數(sub)時, 該涵數裡就會有一個叫 @_ 的陣列自動生成,

並將你輸入的資料存起. shift ; 其實就是 shift @_ 的意思.

8樓:張萍和張桂秋

陣列中的第一個數賦值給content

9樓:匿名使用者

shift 可以得到第一個引數

perl aa.pl 2012

aa.pl種 my $content=shift;

那麼$content的值就是2012

10樓:匿名使用者

獲取程式傳入的引數。

例如你的tool執行為:

./tool 1

那麼$content的值就為1

perl中my($a,$b) = $c 是什麼意思?

11樓:

只是將$c的值賦給$a啊,$b還是未定義

可以這樣

($a, $b) = (1,2);

($a, $b) = ($c,$d);

是對多個元素按照陣列方式賦值的一種方式

12樓:市幼霜

表示有一個hash叫做%a,每個hash有兩個部分組成,key和value$b表示key$c表示,key$b相對應的value例如:my %a=('x' => 1, 'y'=>2);x和y都是key,1和2是key分別對應的value。如果要提取2,則 print $a;如果要改變y的值,則 $a=3;

是否可以解決您的問題?

車牌以xy開頭的紅色字母是什麼車牌

車牌sv開頭紅色字母是什麼?車牌是軍車行不行啊?新式軍車牌照代號代表什麼?新軍車格式為xy12345,x 第1個字母,y 第2個字母 軍車號牌不僅僅在排列方式上有了改變,更採用了資訊防偽 熒光防偽 3d光學防偽 鐳射三維隱爍防偽 鐳射刻印編碼防偽 軋印特殊花紋防偽等技術,還應用了etc技術,有效防範...

中描寫陋室環境清幽寧靜的語句是什麼

無絲竹之bai亂耳,無案牘之勞形 翻譯 du 沒有嘈雜的音zhi樂擾亂聽覺,沒有繁忙的公dao務催勞傷神專。在此 絲竹 暗指 屬官場上聚會 酬宴時助興的 而 無絲竹之亂耳 與下句 無案牘之勞形 二句相互對照配合,顯示 幾經貶官的 劉禹錫對官場上的種種虛偽造作應是有些心灰意懶。由此亦可知他所不喜歡的是...

英語中以動詞開頭的句子,動詞什麼時候要加ing?比如第75題,look要不要加ing

不加ing.以動詞開頭的祈使句省略了主語。例如 go away from me.沒有主語。而動詞ing開頭,動詞則變為名內詞作主語,例如容 studying hard is very important.studying作為主語,hard為形容詞。不用。一般在句首或者動詞後面才用ing形式。75 用...