Time of Update: 2017-01-18
Perl對檔案的操作,跟其它的語言類似,無非也就是開啟,讀與寫的操作。1. 開啟檔案#! c:/perl/bin/perl -w use utf8; use strict; use warnings; my $filename = 'test.txt'; # 或者用絕對路徑,如: c:/perl/Learn/test.txt if(open(MYFILE,$filename)) # MYFILE是一個標誌 { printf "Can open this file:%s!",
Time of Update: 2017-01-18
CPAN(Comprehensive Perl Archive Network:全面的Perl存檔網路)是尋找任何Perl有關的東西的中心倉庫。它包含從整個Perl社區收集來的智慧:成百上千的 Perl模組和指令碼,相當於好幾本書的文檔,以及整個Perl發布。如果有東西是用Perl寫的,而且這個東西很有用而且是自由的,那麼它很有可能就在CPAN上。CPAN在全世界都有鏡象,你可以在位於http://www.perl.com/CPAN 的CPAN
Time of Update: 2017-01-18
本文我們學習如何用Perl對字串或者數字數組進行排序。Perl有個內建函數叫做sort毫無疑問的可以排序一個數組。 其最簡單的形式是傳遞一個數組,它會返回排序後的元素組成的數組。@sorted = sort @original。基於ASCII碼排序複製代碼 代碼如下:#!/usr/bin/perluse strict;use warnings;use 5.010; use Data::Dumper qw(Dumper); my @words = qw(foo bar
Time of Update: 2017-01-18
常用系統函數列表 指令:print文法:print Filehandle LIST說明:這個Filehandle可以看作在I(INPUT)/O(OUTPUT)之間的一個橋樑,可以利用FILEHANDLE來做出資料讀入寫出的動作.STDIN是代表從哪連輸入資料,例如從電腦的鍵盤輸入;STDOUT是代表從哪連輸出資料;例如從電腦的螢幕輸出;STDERR是代表從哪連輸出錯誤的資料,例如從電腦的螢幕輸出.而在PERL語言中有三個標準FILEHANDLE:
Time of Update: 2017-01-18
Perl 的相比起來還是少.看視頻,在入門時還是相當方便的,就象電影來看就好了。我基本 Superor 老師每出一集我都看了。希望大家也認真看看。記的,學習時要多寫,只能看明白,只有 5% 是你的,練習都做一做,就有 30% 是你的啦。其它的如果能根據教程,自己寫出自己要的程式,才 80% 是你的.再次感謝 Superor 老師.注意下面的內容,如果加 .zip 可以直接下載的。例如:http://www.boobooke.com/v/bbk2869.zip第1集:第一章
Time of Update: 2017-01-18
1. chomp無參數時,使用預設參數,將對$_操作。 2. 數組@array..可用$array[number]引用。$#array..表示數組中索引數。 3. $!包含出錯資訊; 4. 預設開啟檔案控制代碼的方式是“<”即輸入,“>>”和“>”區別就在於一個添加方式操作檔案的。 if(@ARGV < 2){ die “Not enough arguments\n”; } 5. select LOG;改變預設控制代碼;在接下來的輸出時不需要輸入控制代碼參數;
Time of Update: 2017-01-18
1,定界符 =~ m/there/; =~ s/there/here/; 還有類型的定界符: =~ /there/ =~ m#there#; =~ s#there#here#; =~ m(there); =~ s(there)(here); =~ m{there}; =~ s{there}{here}; =~ m[there]; =~ s[there][here]; =~ m,there,; =~ s,there,here,; =~ m.there.; =~ s.there.here.; =~
Time of Update: 2017-01-18
一、條件判斷 if ( <expression>) { <statement_block_1> } elsif ( <expression> ) { <statement_block_2>
Time of Update: 2017-01-18
一、簡介 模式指在字串中尋找的特定序列的字元,由反斜線包含:/def/即模式def。其用法如結合函數split將字串用某模式分成多個單詞:@array = split(/ /, $line);二、匹配操作符 =~、!~ =~檢驗匹配是否成功:$result = $var =~ /abc/;若在該字串中找到了該模式,則返回非零值,即true,不匹配則返回0,即false。!~則相反。
Time of Update: 2017-01-18
一、開啟、關閉檔案 文法為open (filevar, filename),其中filevar為檔案控制代碼,或者說是程式中用來代表某檔案的代號,filename為檔案名稱,其路徑可為相對路徑,亦可為絕對路徑。 open(FILE1,"file1"); open(FILE1,
Time of Update: 2017-01-18
一、列表 列表是包含在括弧裡的一序列的值,可以為任何數值,也可為空白,如:(1, 5.3 , "hello" , 2),空列表:()。 註:只含有一個數值的列表(如:(43.2) )與該數值本身(即:43.2 )是不同的,但它們可以互相轉化或賦值。 列表例:
Time of Update: 2017-01-18
一、算術操作符 :+(加)、-(減)、*(乘)、/(除)、**(乘冪)、%(取餘)、-(單目負) (1)乘冪的基數不能為負,如 (-5) ** 2.5 # error; (2)乘冪結果不能超出電腦表示的限制,如10 ** 999999 # error (3)取餘的運算元如不是整數,四捨五入成整數後運算;運算子右側不能為零 (4)單目負可用於變數: - $y ; # 等效於 $y * -1二、整數比較操作符
Time of Update: 2017-01-18
內建變數 $_:先來看一個例子:複製代碼 代碼如下:#!/usr/bin/perl -w@array = qw(a b c d);foreach (@array) { print $_," ";}例子的作用就是定義一個數組並把其中的元素列印出來,這裡需要注意的是foreach迴圈部分,foreach迴圈的標準格式應該是:複製代碼 代碼如下:foreach $element
Time of Update: 2017-01-18
執行個體代碼:複製代碼 代碼如下:#! /usr/bin/perl -w$path = '/root/Documents'; # 當前工作目錄$dir = "$path/images"; # 要遍曆的目錄$log_file = "$path/access_201209.log"; # nginx日誌0903~0907, filesize: 5.4G$result_file = 'result.f'; #
Time of Update: 2017-01-18
圖:複製代碼 代碼如下:#!/usr/bin/perl## fdupe tool - finding duplicate files## $Id: fdupe,v 1.7 2011/10/14 20:11:21 root Exp root $## Source code Copyright (c) 1998,2011 Bernhard Schneider.# May be used only for non-commercial purposes with# appropriate
Time of Update: 2017-01-18
當你剛開始學習perl的時候,寫好了程式,準備興高采烈的等待結果輸出時,結果雙擊後,看到螢幕閃了一下,然後什麼都沒有了。根本沒有機會然你看到輸出的結果。 怎麼解決這種問題呢?其實各種語言都有這個問題!解決的思路就是讓程式輸出結果以後,繼續等待使用者的輸出就可以了 也就是在指令碼的末端加上這樣的兩行 複製代碼 代碼如下: print "press <Enter> to continue..."; <STDIN> 這樣就可以了。
Time of Update: 2017-01-18
假如有這樣的一段序列:1 2 1 2 2 1 1 3 1 4 1 5 4 1 我們需要得到如下的結果:1 3 1 5 2 1 4 1 那麼,請藉助以下的perl指令碼來實現。代碼一:複製代碼 代碼如下:#!/bin/perluse strict; use warnings; my $filename; my %hash; my
Time of Update: 2017-01-18
Perl中的程式注釋:單行注釋和多行注釋 (一)單行注釋: 以#開頭的行都被perl認為是注釋。但是有一個例外,perl程式的第一行是#開頭的,他指定了perl程式的解譯器。 例如:#print 1; 這種方法有個缺點,就是每次# 只能夠注釋一行,如果要注釋的代碼很長,那就是一件很麻煩的事情。 (二)多行注釋: 最常用的方法是使用 POD(Plain Old Documentations) 來進行多行注釋。方法如下: =pod codes to comment =cut 注意:=pod
Time of Update: 2017-01-18
perl中建立數組時,可以使用到qw。但有一個問題,如果要建立有20個人名組成的數組,並且每個人的名字是這種形式的"Join smith" "Harry Potter"也就是每一個名字既包含姓也包含名。此時,qw就不起作用了。因為qw是用空格作為分隔字元。下面提供一些替代的解決方案,供大家參考。方案一:用最原始的方案,也就是雙引號,來進行數組的建立複製代碼 代碼如下:@names=("Join smith","Harry Potter"); print @names[0];
Time of Update: 2017-01-18
複製代碼 代碼如下:#!/usr/bin/perlmy %scyjm; open (CONTACT,"f:\\perl\\f.txt")||die("can not open the file!"); while (<CONTACT>) { next if /^#/;#if($_=~/^#/的簡寫 chomp; my @information =split;#