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

時間 2021-08-30 09:32:00

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] 代表當前匹配的正規表示式在被匹配的字串中的起始和終止的位置☆

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

阿拉希 如果大括號內是標量變數的話,那這裡的作用就是限定變數界限的。在 a r n 和 a str r n 有什麼區別 裡是沒有什麼區別的。str my name strstr your name echo str is hello my namestr is helloecho strstr is...

裡大括號怎麼把幾行文字一起括起來

果是中文文字,可以選中之後點格式 中文版式 雙行合一,然後指定帶括號,並指定括號的型別即可。如果是英文可以使用插入公式的方法。 開啟 工具欄 點一下自選圖形 再點基本形狀 裡面就有大括號了 點一下,在畫面上拖一下 直拉用繪圖上的大括號就行了。想在word裡畫一個大括號把兩行文字給括起來,怎麼畫呢? ...

刪除欄位裡小括號括起來的內容 sql語句怎麼寫

查詢語句的效果 with t tmp as select abcdefg 123456 xyz as f1 select f1,substring f1,1,charindex f1 1 substring f1,len f1 charindex reverse f1 2,100 as f2 fro...