perl的特殊變數$^I

    在文本處理時經常會碰到這樣的情況:有一批檔案需要修改裡面的內容,但是又希望保留原來檔案的內容。這個時候Perl提供了一個很方便的變數$^I,將需要備份檔案的尾碼儲存在該變數後,我們在修改檔案內容時,Perl會: 1、先將原檔案開啟並另存新檔以“原檔案名稱+$^I存放的尾碼字元”為檔案名稱的備份檔案。 2、在原檔案上修改。 例如下面一段程式,我要將所有.dat文本中的abc改為dfg,並備份成.bak的檔案

perl多進程讀寫文本

用perl調度sql指令碼,在開多個進程的時候,發現perl寫入的log檔案先後次序紊亂,又不想搞多線程編程那麼麻煩,我的處理方法,對應的檔案加鎖。perl提供flock函數對檔案控制代碼加鎖。 參考代碼: use Fcntl qw(:flock); my $sum; my $kk=$ARGV[0]; open wr , ">>/wls/dsadm/etl/test.txt" ; flock(wr, LOCK_EX); for($

perlRegex

  預設情況下,m//運算子嘗試匹配指定的模式和$_中的文本。 例如:在使用者輸入的文本中尋找字串exit(第二個反斜線之後的i修飾符是的模式比對不區分大小寫)。如果在$_中找到exit,則m//返回真; print"\n---------------------------(m//) Demo------------------------\n"; print "Enter:"; while(<>){ if(m/

perl中的undef數值和defined函數

1.undef         undef是perl中變數未初始化時的預設值。當這個未初始化的變數被當做整型來使用時,那麼undef就是0;當這個變數被當做字串來使用時,那麼undef就是Null 字元串。所以當在perl中使用一個未經過初始化的變數時,程式的運行是沒有問題的。         例如: $sum += 1; #該語句第一次被執行時,sum變數預設為0

perl 在tk中的回呼函數 參數為一個函數的引用__函數

my (@frames,@button);my %sub_of = ( "日誌查詢" => \&push_button2 , "簡訊查詢" => \&push_button3 , "VIEW DISK" => \&push_button4 , 4 => sub{ print "program 4" }, 5

centos安裝git1.8.3時 報錯make[1]: *** [perl.mak] Error 2

centos安裝git時 報錯make[1]: *** [perl.mak] Error 2  usr/bin/perl Makefile.PL PREFIX='/usr/local/git' INSTALL_BASE='' --localedir='/usr/local/git/share/locale' Can't locate ExtUtils/MakeMaker.pm in @INC (@INC contains:

perl學習心得(摘記)

要在字串中包含雙引號或反斜線,則在其前加一個反斜線,反斜線還可以取消變數替換 單引號另一個特性是可以跨多行,如:  $text = 'This is two  lines of text  ';   與下句等效:  $text = "This is two/nlines of text/n";

在Perl中使用Net::SMTP_auth發送郵件 .

1, 在不需要認證的smtp伺服器上發送郵件 #!/usr/bin/perl -w   use Net::SMTP;   $smtp = Net::SMTP->new($mail_server);    #郵件伺服器地址   $smtp->mail($send_user);             

memcached for perl

用到memcached,記下  memcached中儲存的資料都儲存在memcached內建的記憶體儲存空間中。 由於資料僅存在於記憶體中,因此重啟memcached、重啟作業系統會導致全部資料消失。 另外,內容容量達到指定值之後,就基於LRU(Least Recently Used)演算法自動刪除不使用的緩衝。 memcached本身是為緩衝而設計的伺服器,因此並沒有過多考慮資料的永久性問題。  memcached是“分布式”快取服務器,但伺服器端並沒有分布式功能。

Perl學習筆記(5)glob的使用

######################read()函數中的offset參數含義 read (FILEHANBD, $var, $length, $offset) read 函數有四個參數,最容易誤解的是$offset 它的含義看官方文檔,解釋是: An OFFSET may be specified to place the read data at some place in the string other than the beginning. A

perl正則命名分組捕獲__perl

1、命名分組格式為(?<grp name>),反向引用時用\k<grp name> 2、命名分組的匹配的結果存在在變數%+變數中,取命名分組值,$+{grp name}. 3、反向引用也可以用\g1,\g{1},\g{-1},\g{-2}等,負表示分組的倒數每幾個分組. 例: 方法1: local $_  ='Buster and buster'; if(/(\S+) (and|or) \1/i) {print "I

shell基礎2-曆史命令和tab鍵/別名與快速鍵__Script-Perl

正常情況下,需要退出的時候才會把命令寫入,加入參數-w會立馬寫入。 這個profile是Linux重要的環境變數設定檔。 命令補全: 輸入user後兩次tab鍵就會列出所有user開頭的檔案。 這種別名重啟後就會失效,所以開啟   .bashrc  檔案進行修改即可。 自己定義了一個  ll 命令,就是下面的這個,帶顏色的。 列印出環境變數,前面加個 &

Perl學習筆記 No.9

使用Regex處理檔案1.   s///,s/abc/fred/  先匹配abc,如果匹配上,使用fred替換abc;如果沒有匹配上,則什麼都不做2.   s///g,全域替換,s/abc/fred/g,將所有abc都替換成fred3.   可以使用其他符號替代/作為分隔字元4.    /six同樣適用5.    $_ = “I saw Barney with Fred.”;       $_ =  s/(fred|barney)//U$1/gi;                    #

Perl學習筆記 No.6

1.   由於每一個 hash 都有一個私人的迭代器(iterator),因此,使用 each 的迴圈是可以嵌套的,因為不同的 hash有不同的迭代器(iterator).雖然這隻是腳註,但我們也應當告訴你,你可以通過使用 keys 或 values函數,重設迭代器(iterator).如果新列表加入到此 hash 中,或者 each函數迭代到最後一個元素,也會重設迭代器(iterator) 另一方面,如果在迭代時加入新的

Perl學習筆記 No.5

1.    >清空檔案資料,重寫;>>追加在檔案末尾2.    最好在不使用一個檔案控制代碼時就立刻將它關閉 ,無論程式是否立即結束3.    $! 表示系統產生的一些可讀的資訊,如許可權不夠,檔案不存在等;它所包含的資訊,僅對系統請求失敗時有效4.    作為一般規則(die語句),如果用法錯誤則在訊息後面加上分行符號;如果是其它錯誤,需要利用它來調試,則不要加上分行符號5.    warn與die的去被在於,warn不會使程式退出6.    只有 Perl

Perl學習筆記 No.12

1.     chdir改變工作目錄...chdir "/etc" or die "cannot chdir to /etc:$!";如果參數為空白,改變到主目錄2.     my @all_files = glob "*"; my @bz_file = glob "*.bz2"; 只對目前的目錄下3.     my @all_files = <*>;   my $dir = "/etc"; my @dir_files = <$dir/* $dir/.*>;4.    

Perl學習筆記 No.13

1.    $where = index($big, $small); 字元位置是從 0 開始編號的.如果子串在字串的開頭處找到,則 index 返回 0 .如果一個字元後,則返回 1,依 次類推.如果子串不存在 ,則返回- 1.2.    可以使用可選的第三個參數要求它從後面的某個地方開始查詢,它會告訴 index從什麼位置開始3.     rindex 反向尋找,用法同上4.     $part = substr($string, $initial_position, $length); 

Symbian開發環境搭建時Perl版本衝突的問題解決

裝完Carbide C/C++,遇到一個問題: ---------------------------perl.exe - Unable To Locate Component---------------------------This application has failed to start because perl58.dll was not found. Re-installing the application may fix this problem. ------------

比較Perl、PHP、Python、Java和Ruby 【轉載】

原文:http://levi.cg.am/?cat=246!預覽· 語言的發展趨勢一定是動靜結合、剛柔並濟· Perl凝練晦澀,Python優雅明晰,Ruby精巧靈動,PHP簡明單純· 或許優雅正是來自對細節和規範的重視· (RoR)與Ruby結合之後,便如一隻猱身而上靈貓,立刻襯托出Java和.NET大象般的身影?提問Perl、Python、Ruby和PHP各自有何特點?為什麼動態語言多作為輕量級的解決方案?LAMP為什麼受歡迎?Ruby on

Perl 常用函數2

perl常用函數集2一、進程處理函數1、進程啟動函數函數名 eval調用文法 eval_r(string)解說 將string看作Perl語句執行。正確執行後,系統變數$@為空白串,如果有錯誤,$@中為錯誤資訊。例子 $print = "print (/"hello,world//n/");";eval_r($print);結果輸出 hello, world函數名 system調用文法 system(list)解說

總頁數: 64 1 .... 55 56 57 58 59 .... 64 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.