perl裡用大括號括起來的變數有什麼意思變數名

2021-08-19 16:47:20 字數 8167 閱讀 5999

1樓:阿拉希

如果大括號內是標量變數的話,那這裡的作用就是限定變數界限的。在[$a = "--$\r\n"和$a = "--$str\r\n"有什麼區別]裡是沒有什麼區別的。

$str = 'my name';$strstr='your name';echo  "$str is hello"; //my namestr is helloecho "$strstr is hello"; //your name is helloecho "$strabc is hello"; // undefined variable: strabc in {}的作用是限制變數名。

perl裡用大括號括起來的變數有什麼意思${變數名}

2樓:阿拉希

如果大括號內是標量變數的話,那這裡的作用就是限定變數界限的。在[$a = "--$\r\n"和$a = "--$str\r\n"有什麼區別]裡是沒有什麼區別的。

$str = 'my name';$strstr='your name';echo  "$str is hello"; //my namestr is helloecho "$strstr is hello"; //your name is helloecho "$strabc is hello"; // undefined variable: strabc in {}的作用是限制變數名。

3樓:匿名使用者

$str = 'my name';

$strstr='your name';

echo "$str is hello"; //my namestr is hello

echo "$strstr is hello"; //your name is hello

echo "$strabc is hello"; // undefined variable: strabc in

{}的作用是限制變數名

perl 中 $/=">"是什麼意思?

4樓:

通常我們的行分隔符是\n

perl 中 $/ 也是預設為 \n

打個比方,字串 “abc>123\n” 原本是一句話如果你改變 $/ 的值,$/=">"

該字串就變為兩句話,相當於“abc\n123\n”。

5樓:匿名使用者

叫記錄分隔符,上網搜一下各個符號的意思。

就是說各個記錄用什麼符號分割,預設是換行,所以在讀入檔案時候是讀入一行。

假設有檔案a.txt:

abcde;fghij

有如下**:

open in, "< a.txt";

$l = ;

print $l;

執行結果:

abcde;fghij (隱含一個換行符)$/ = ";";

open in, "< a.txt";

$l = ;

print $l;

執行結果:

abcde;

6樓:計名

讀入資料是一般是按一行一行的讀 (\n)

local $/ = '>' 以後

這是第1行》這是第2行》這是第3行(雖然都在一行上)

7樓:

真沒見過?在哪兒見到的?

perl中如何宣告一個變數總是大於另一個變數

8樓:連續用

沒有這種宣告,只能是判斷

while(1)else}

perl中的預設變數@_和$_什麼意思?

9樓:匿名使用者

@_ 在某個函式內,陣列 @_ 包含傳遞給該函式的所有引數。

$_ 預設的輸入/輸出和格式匹配空間

@_的示例:

#!/bin/perl -w

use strict;

&fun( 111,222,333 );

sub fun()

這裡會把傳入函式的引數111222333列印出來。

$_示例:

下面的幾對**都是等同的:

while (<>) # equivalent only in while!

while (defined($_ = <>))

/^subject:/

$_ =~ /^subject:/

tr/a-z/a-z/

$_ =~ tr/a-z/a-z/

chomp

chomp($_)

以下是幾處即使沒有寫明 perl 也會假定使用 $_ 的地方:

* 各種單目函式,包括像 ord() 和 int() 這樣的函式以及除 "-t"

以外所有的檔案 測試操作 ("-f","-d"),"-t" 預設操作 stdin。

* 各種列表函式,例如 print() 和 unlink()。

* 沒有使用 "=~" 運算子時的模式匹配操作 "m//"、"s///" 和

"tr///"。

* 在沒有給出其他變數時是 "foreach" 迴圈的預設迭代變數。

* grep() 和 map() 函式的隱含迭代變數。

* 當 "while" 僅有唯一條件,且該條件是對 ""

操作的結果進行測試時,$_ 就是存放輸入記錄的預設位置。除了

"while" 測試條件之外不會發生這種情況。

(助記:下劃線在特定操作中是可以省略的。)

@_和$_都是perl很常用的特殊變數。建議系統看一下《perl語言入門》。

另附perl常用特殊變數列表:

perl 內建變數

$- 當前頁可列印的行數,屬於perl格式系統的一部分

$! 根據上下文內容返回錯誤號或者錯誤串

$” 列表分隔符

$# 列印數字時預設的數字輸出格式

$$ perl直譯器的程序id

$% 當前輸出通道的當前頁號

$& 與上個格式匹配的字串

$( 當前程序的組id

$) 當前程序的有效組id

$* 設定1表示處理多行格式.現在多以/s和/m修飾符取代之.

$, 當前輸出欄位分隔符

$. 上次閱讀的檔案的當前輸入行號

$/ 當前輸入記錄分隔符,預設情況是新行

$: 字元設定,此後的字串將被分開,以填充連續的欄位.

$; 在**多維陣列時使用的分隔符.

$? 返回上一個外部命令的狀態

$@ perl直譯器從eval語句返回的錯誤訊息

$[ 陣列中第一個元素的索引號

$\ 當前輸出記錄的分隔符

$] perl直譯器的子版本號

$^ 當前通道最上面的頁面輸出格式名字

$^a 列印前用於儲存格式化資料的變數

$^d 除錯標誌的值

$^e 在非unix環境中的作業系統擴充套件錯誤資訊

$^f 最大的檔案捆述符數值

$^h 由編譯器啟用的語法檢查狀態

$^i 內建控制編輯器的值

$^l 傳送到輸出通道的走紙換頁符

$^m 備用記憶體池的大小

$^o 作業系統名

$^p 指定當前除錯值的內部變數

$^r 正規表示式塊的上次求值結果

$^s 當前直譯器狀態

$^t 從新世紀開始算起,腳步本以秒計算的開始執行的時間

$^w 警告開關的當前值

$^x perl二進位制可執行**的名字

$_ 預設的輸入/輸出和格式匹配空間

$| 控制對當前選擇的輸出檔案控制代碼的緩衝

$~ 當前報告格式的名字

$` 在上個格式匹配資訊前的字串

$’ 在上個格式匹配資訊後的字串

$+ 與上個正規表示式搜尋格式匹配的最後一個括號

$< 當前執行直譯器的使用者的真實id

$ 含有與上個匹配正規表示式對應括號結果

$= 當前頁面可列印行的數目

$> 當前程序的有效使用者id

包含正在執行的指令碼的檔名

$argv 從預設的檔案控制代碼中讀取時的當前檔名

%env 環境變數列表

%inc 通過do或require包含的檔案列表

%sig 訊號列表及其處理方式

@_ 傳給子程式的引數列表

@argv 傳給指令碼的命令列引數列表

@inc 在匯入模組時需要搜尋的目錄列表

$-[0]和$+[0] 代表當前匹配的正規表示式在被匹配的字串中的起始和終止的位置

10樓:匿名使用者

$_是模式匹配或者輸出的預設字串.。

@_沒聽說過,等待學習~~

關於perl中的字串中的方括號和變數替換 :盼詳細解答 10

11樓:

第一行你應該明白意思吧~就是陣列中的第一個元素第二行的反斜槓 \ ,一般用作轉義字元和引用。這裡的是作用是轉義。

這裡做一個比方 \n.是換行符你知道吧。但是你想用print 把\n 列印出來怎麼辦。這裡就要\\n。具體可以在在書上的講解

第三行和第一行意思一樣~也是陣列中第一個元素。表達的方式不一樣,你覺得哪一種直觀就用哪一種

第四行和第二行意思一樣。說的很直觀。取消了大括號的變數替換功能。就是一個字串"$" 不是變數

呵呵,希望你能看懂

12樓:

自己執行去理解。

#!/usr/bin/perl

use strict;

# "$var[0]" 為陣列@var的第一個元素。

# "$var\[0]" 將字元"["轉義,等價於"$var". "[0]",$var被變數替換,[0]保持不變。

# "$[0]" 亦等價於"$var" ."[0]"。

# "$\"則取消了大括號的變數替換功能,包含文字:$.

my $var='aaaaaa';

my @var=('b1','b2','b3');

local $\='c1';

my %var=(0=>'e1',1=>'e2');

print "$var[0]";

print "\n";

print "$var\[0]";

print "\n";

print "$[0]";

print "\n";

$='d1';

print "$[0]";

print "\n";

print "$\";

print "\n";

perl中括號的作用

13樓:匿名使用者

括號裡面的會被perl自動記錄成$1,$2,$3,.....

舉個例子,你這2個用來匹配字串:

if ( 'hello/world' =~ /(\s+)\/\s+/ )

此時print $1 , 結果是helloif ( 'hello/world' =~ /\s+\/(\s+)/ )

此時print $1 , 結果是world

c語言主函式中有一段用大括號括起來了,其中定義的變數與主函式變數衝突,求解釋?

14樓:破憶斷回

一對花括號理裡面叫做語句塊 在其中的定義的變數在其括號可以使用void main()// int main()才是正確的printf("%d,%d#",k,m);//用大括號的語句} //

perl中的預設變數@_和$_什麼意思?深圳

15樓:匿名使用者

@_ 在某個函式內,陣列 @_ 包含傳遞給該函式的所有引數。

$_ 預設的輸入/輸出和格式匹配空間

@_的示例:

#!/bin/perl -w

use strict;

&fun( 111,222,333 );

sub fun()

這裡會把傳入函式的引數111222333列印出來。

$_示例:

下面的幾對**都是等同的:

while (<>) # equivalent only in while!

while (defined($_ = <>))

/^subject:/

$_ =~ /^subject:/

tr/a-z/a-z/

$_ =~ tr/a-z/a-z/

chomp

chomp($_)

以下是幾處即使沒有寫明 perl 也會假定使用 $_ 的地方:

* 各種單目函式,包括像 ord() 和 int() 這樣的函式以及除 "-t"

以外所有的檔案 測試操作 ("-f","-d"),"-t" 預設操作 stdin。

* 各種列表函式,例如 print() 和 unlink()。

* 沒有使用 "=~" 運算子時的模式匹配操作 "m//"、"s///" 和

"tr///"。

* 在沒有給出其他變數時是 "foreach" 迴圈的預設迭代變數。

* grep() 和 map() 函式的隱含迭代變數。

* 當 "while" 僅有唯一條件,且該條件是對 ""

操作的結果進行測試時,$_ 就是存放輸入記錄的預設位置。除了

"while" 測試條件之外不會發生這種情況。

(助記:下劃線在特定操作中是可以省略的。)

@_和$_都是perl很常用的特殊變數。建議系統看一下《perl語言入門》。

另附perl常用特殊變數列表:

perl 內建變數

$- 當前頁可列印的行數,屬於perl格式系統的一部分

$! 根據上下文內容返回錯誤號或者錯誤串

$” 列表分隔符

$# 列印數字時預設的數字輸出格式

$$ perl直譯器的程序id

$% 當前輸出通道的當前頁號

$& 與上個格式匹配的字串

$( 當前程序的組id

$) 當前程序的有效組id

$* 設定1表示處理多行格式.現在多以/s和/m修飾符取代之.

$, 當前輸出欄位分隔符

$. 上次閱讀的檔案的當前輸入行號

$/ 當前輸入記錄分隔符,預設情況是新行

$: 字元設定,此後的字串將被分開,以填充連續的欄位.

$; 在**多維陣列時使用的分隔符.

$? 返回上一個外部命令的狀態

$@ perl直譯器從eval語句返回的錯誤訊息

$[ 陣列中第一個元素的索引號

$\ 當前輸出記錄的分隔符

$] perl直譯器的子版本號

$^ 當前通道最上面的頁面輸出格式名字

$^a 列印前用於儲存格式化資料的變數

$^d 除錯標誌的值

$^e 在非unix環境中的作業系統擴充套件錯誤資訊

$^f 最大的檔案捆述符數值

$^h 由編譯器啟用的語法檢查狀態

$^i 內建控制編輯器的值

$^l 傳送到輸出通道的走紙換頁符

$^m 備用記憶體池的大小

$^o 作業系統名

$^p 指定當前除錯值的內部變數

$^r 正規表示式塊的上次求值結果

$^s 當前直譯器狀態

$^t 從新世紀開始算起,腳步本以秒計算的開始執行的時間

$^w 警告開關的當前值

$^x perl二進位制可執行**的名字

$_ 預設的輸入/輸出和格式匹配空間

$| 控制對當前選擇的輸出檔案控制代碼的緩衝

$~ 當前報告格式的名字

$` 在上個格式匹配資訊前的字串

$’ 在上個格式匹配資訊後的字串

$+ 與上個正規表示式搜尋格式匹配的最後一個括號

$< 當前執行直譯器的使用者的真實id

$ 含有與上個匹配正規表示式對應括號結果

$= 當前頁面可列印行的數目

$> 當前程序的有效使用者id

包含正在執行的指令碼的檔名

$argv 從預設的檔案控制代碼中讀取時的當前檔名

%env 環境變數列表

%inc 通過do或require包含的檔案列表

%sig 訊號列表及其處理方式

@_ 傳給子程式的引數列表

@argv 傳給指令碼的命令列引數列表

@inc 在匯入模組時需要搜尋的目錄列表

$-[0]和$+[0] 代表當前匹配的正規表示式在被匹配的字串中的起始和終止的位置☆

wps的裡,用方括號括起來的黃色背景字怎麼改回正常格式

這種黃色括號是限制編輯下的可編輯區域。wps最右側有個藍色箭頭,或者檢視視窗 開啟任務窗格。任務窗格有個限制 突出顯示可編輯的區域,把 去了就沒了。另外,黃色括號以外的區域是受保護區域,不可編輯。看這個word文件,括號裡面的黃色背景字應該是填充或者格式刷,也或者是條件格式。前二者可能性比較大。選中...

1減括號裡20乘括號裡1括起來等於1的解

1 20 1 x 1 1 80 x 1 x 80 x 80求採納 括號x 1反括號的平方減括號x 2反括號乘括號x 2反括號等於多少 x 1 2 x 2 x 2 x 2 2x 1 x 2 4 x 2 2x 1 x 2 4 2x 5。這是一道整式的混合計算題。知識點 1。乘法公式 a b 2 a 2 ...

matlab裡的語句,大括號後面的,小括號裡的數表示什麼

使用大括號,是取出元胞陣列中元素的內容,也就是字串。相應,length是求字串長度。使用小括號,相當於提取子陣列,得到的結果仍然是元胞陣列。length的結果自然也就是1了。需要知道的是 cell陣列是matlab的一種特殊矩陣,或者叫做廣義矩陣。矩陣的每個元素可以是任何一種資料型別的常數 常量或者...