1. 為什麼perl腳本必須要加perl命令才能運行
加perl命令是為了讓該程序以perl環境運行。在windows下,如果你把.pl為後綴的默認打開方式為perl,就可以雙擊打開啦,不用輸入perl+程序名
2. perl腳本中怎麼樣執行linux命令
Linux下perl文件的執行
#! /usr/bin/perl
第一個「#」表示是這一行是注釋
第二個「!」表示這一行不是普通注釋,而是解釋器路徑的聲明行
後面的「/usr/bin/perl」是perl解釋器的安裝路徑,也有可能是:「/usr/local/bin/perl」,如果那個不行,就換這個。
這樣修改後,文件就是這個模樣:
#!/usr/bin/perl
#test.pl
print "test message! \n";
然後,給文件加上可執行的屬性:
$ chmod 755 test.pl 或者 $ chmod +x test.pl
這兩個命令用哪一個都可以。
現在執行吧: $ ./test.pl
3. 菜鳥perl腳本編寫
#!/usr/bin/env perl
while (<>) {
chomp;
push @file1, $_;
$len ++;
}
while (<>) {
chomp;
push @file2, $_;
}
for ($i = 0; $i < $len; $i ++) {
print $file1[$i],' ',$file2[$i]," ";
}
給分吧。
4. 如何寫bat來執行perl腳本
看看你的 Perl 目錄
bin 下面應該有個 pl2bat.bat
pl2bat可以把perl轉換成bat文件,
5. 誰知道PERL腳本語言的特徵和優點[給點詳細點的]
perl 是腳本語言,功能類似與SHELL,但是shell是使用在unix下的。
perl的通用性要比shell好支持更多的平台,可以與java媲美。
perl語言的數據類型簡單,他能夠自動區別數值和字元串。
perl是免費的語言!!!有很多免費的模塊;例如:socket ,dbi等等
perl中的數據類型有hash,這個是其他語言不具備的!!!!
除了可以寫CGI,perl的正則表達式是處理字元的超強手段!!
6. perl 如何在一個perl腳本程序里調用另一個需要運行參數的perl腳本程序 例如有一個a.
你首先需要關聯.pl文件到perl.exe,雙擊b.pl能執行就是關聯好了的,然後在b.pl裡面這樣寫代碼就可以:
$f='abc.txt';
system "a.pl --show-timer -f $f";
7. perl 、shell、python三種腳本語言那種好學、易用
perl、shell、python三種腳本語言的區別:
1、適用不同:shell是操作linux的基本,是必須學的。學shell就是學linux命令。perl有強大的正則表達式支持,對於文本處理非常強悍,玩linux不得不學。python作用一種面向對象的,能作為linux腳本的語言,學好之後能幫你很好地完成工作。
2、特點不同:Perl是一種能完成任務的語言。從一開始,Perl就設計成可以把簡單工作簡單化,同時又不失去處理困難問題能力的語言。它可以很容易操作數字,文本,文件和目錄,計算機和網路,特別是程序的語言。
這種語言應該很容易運行外部的程序並且掃描這些程序的輸出獲取感興趣的東西。而且它還應該很容易能把這些你感興趣的東西交給其它程序做特殊的處理。當然,這種語言還應該很容易在任何現代的操作系統上可以移植地編譯和運行。
shell提供了你與操作系統之間通訊的方式。這種通訊可以以交互方式(從鍵盤輸入,並且可以立即得到響應),或者以shellscript(非交互)方式執行。
shellscript是放在文件中的一串shell和操作系統命令,它們可以被重復使用。本質上,shellscript是命令行命令簡單的組合到一個文件裡面。Shell基本上是一個命令解釋器,類似於DOS下的command.com。
它接收用戶命令(如ls等),然後調用相應的應用程序。較為通用的shell有標準的Bourneshell(sh)和Cshell(csh)。
Python是一種代表簡單主義思想的語言。閱讀一個良好的Python程序就感覺像是在讀英語一樣,盡管這個英語的要求非常嚴格,Python的這種偽代碼本質是它最大的優點之一。它使你能夠專注於解決問題而不是去搞明白語言本身。
3、優點不同:perl,用作文本處理比較好,可以作為系統的輔助工具。shell,用作系統維護、操作等方面。python,功能強大,模塊多、跨平台能力好,完全面向對象,尤其適用做大型腳本程序的開發和快速開發。
(7)perl腳本擴展閱讀:
erl比shell+sed+awk更強大,但學習兩者並不沖突,通常是學習shell做為腳本編程的入門基礎。而Python在應用領域則與前兩者有很大的差別,無太大的可比性。面向不同的任務,可以只需用到其中的一種,也可能三種都要用到,所以究竟該學誰不學誰,需要由面對的任務來決定。
總之,shell是基礎,其他是進階輔助。
Shell腳本通常都是以.sh為後綴名的,這個並不是說不帶.sh這個腳本就不能執行,只是大家的一個習慣而已。所以,以後你發現了.sh為後綴的文件那麼它一定會是一個shell腳本了。
test.sh中第一行一定是「#!/bin/bash」它代表的意思是,該文件使用的是bash語法。如果不設置該行,那麼你的shell腳本就不能被執行。』#』表示注釋。後面跟一些該腳本的相關注釋內容以及作者和創建日期或者版本等等。
8. perl是腳本語言還是什麼語言
Perl簡介Perl最初只是Unix系統管理員的一個工具,在工作日里被用在無數的小任務中。從那以後,它逐步發展成為一種全功能的程序設計語言,特別是在各種計算平台上,它被用作Web編程、資料庫處理、XML處理以及系統管理——它能夠完成所有這些工作,同時仍然是處理小的日常工作的完美工具,這是它的設計初衷。Perl快速、有趣,而且特別有用。很多人因為需要Perl而使用它,又因為熱愛它而繼續使用它。_摘自Perl語言入門Oreilly_*Perl是一門自由且功能強大的編程語言。自1987年初次登台亮相以來,它的用戶數一直急劇膨脹。從最初被當作一種在跨平台環境中書寫可移植工具的高級語言開始,Perl就已經被廣泛地認為是一種工業級的強大工具,可以在任何地方用來完成你的工作。Perl特別適合系統管理和Web編程。Perl實際上已經被所有Unix(包括Linux)捆綁在一起作為標准部件發布,而且也被廣泛用於MicrosoftWindows和幾乎所有其他操作系統。Amiga、BeOS、VMS、MVS和AppleMacintosh等也只是Perl已經完成移植的平台的一小部分。_摘自Perl語言編程Oreilly_ 很多人使用Perl來替代shell,很多人使用Perl來避免編寫繁瑣的C,C 或Java程序.如果你的程序要求高效率,你可以把費時部分用C寫,然後與Perl結合使用. 你幾乎可以使用Perl來解決所有問題.使用Perl與否完全是你的決定:)
9. perl如何運行執行腳本
windows下要安裝ActivePerl,然後直接雙擊運行。
Linux下就命令行perl perlname.pl
10. 如何調試perl腳本
進入退出:
perl
-d debugtest用調試器載入perl程序運行,互動式界面
Loading
DB routines from perl5db.pl version 1.3
Editor
support available.
Enter
h or `h h' for help, or `perldoc
perldebug'
for more help.
main::(p4.pl:2): my($xx,$yy)=(1,1);
DB<1>
先是歡迎信息,顯示第一個可執行行:程序將要執行的當前行號。包名,文件名,文件中的行號。
提示符DB<n>
n為命令行號。h可看幫助,q退出調試器
l
預設顯示10行 再輸入l接著顯示10行
l
10 指定顯示第10行
l
8-10 指定顯示行的范圍
l
8+3 指定從哪行開始多少行。
l
subs 指定顯示函數,提供函數名。如果太長只顯示前幾行,用l接著顯示
-
顯示在當前行前面的行,再輸入-繼續向前
w
7 包含指定行的顯示窗口 windows可能不一樣
//
?? 從當前行搜索包含指定模式的行 /find/
//從前向後正向搜索,??從後向前逆向搜索 可忽略?? //中後面的? /。
S
列出所有函數,包名::函數
無參數的預設形式列出所有底層和繼承的函數,太多。加上搜索模式,指定當前程序包 S main可列出含main的函數
s 執行單條語句 顯示下一條要執行的語句。如果需要交互會等待輸入。
對於函數,僅僅是進入不執行,如果不進入函數內部,要跳過用n。不能進入系統內部的庫函數,只能進入自己定義的
n 執行一行程序,stepover 不進入函數。
f 執行當前函數剩下的語句,顯示跟隨函數的語句
step
out 舊命令,現在為切換文件名
回車
如果執行了s或n,以後只用回車重復執行上一個s或n的命令。
r 在函數中執行到函數外
b 10
在哪一行設置斷點。如果此行非執行語句,顯示不能設置斷點。如果一條語句有多行,則在第一行設置,其餘行不能設置。
b func在函數處設置斷點
b 10
($curdir eq
"") 當條件為真時中斷執行
c
執行到斷點或終止。繼續
c
12臨時斷點,只中斷一次,繼續執行在12行中斷。
L
列出所有斷點。列出前幾行,當前行,斷點。斷點條件。
B
10刪除斷點。不帶參數認為是下一行是斷點。
B *
刪除所有斷點。
X
var 不帶參數列出main包的所有變數,包括預定義的變數。指定變數不帶$,@。可能是符號表中的變數才行。現在與V同。
V
var 列出任何包的變數。只指定包名列出包的所有變數。指定包及變數為main
var。無::
S
列出所有可用的函數,包名::函數 無參數的預設形式列出所有底層和繼承的函數,太多。加上搜索模式,
指定當前程序包
S
main可列出含main的函數
p
expr
指印表達式值。把標准輸出重定向也會輸出到屏幕。
程序到達某一行時指定執行一條或多條語句。常見的行動作是顯示變數值或把含錯誤值的變數重置為指定的值
a
10 print ("curdir is $curdir\n") 多條語句在一行中用分號;分開,當要續行時用\ 執行完第10行執行指定的語句。
A
*刪除所有行動作
A 10刪除第10行的動作
>
print 在程序開始執行前執行語句。無參數形式刪除設置
<
print 在程序執行完成後執行語句。無參數形式刪除設置
跟蹤 顯示每一個執行行。
t
打開,關閉跟蹤。每執行顯示一行。
任何非調試命令的perl語句都可執行。分號可忽略。更改變數值。
H
列出從前命令
!
n 執行從前命令。忽略行號執行上一條命令
n=-2跳過2條命令。從當前H列表逆向跳過。
T
棧跟蹤。調用級
$
= &main::sub2('hi') from file debug1 line 7
$
= &main::sub1('hi') from file debug1 line 3
當前程序在第7行,在main包的sub2函數中,以hi為實際傳遞的參數。返回簡單變數,此函數由sub1調用。
=
別名 命令 給命令定義別名 =
pc print ("curdir is $curdir\n");別名存在%DB(%DB::alias)中。無參數列出定義的別名。輸入pc列印語句。
預定義別名:每次載入調試器自動定義別名。在.perldb中加入$DB'alias{"pc"} = 's/^pc/print
("curdir is $curdir\n");/';
錯誤檢查
Lint perl -MO=Lint,-u pl 編譯時檢查
perldiag錯誤信息
-w 重定義函數變數未使用
Use strict;
use diagnostics 警告信息。
命令行參數簡介
-c 語法檢查
-v版本
-w警告信息
-e執行單行程序
-s為程序提供命令行選項。perl -s prog.pl
-q =>$q=1作為選項。不出現在@ARGV中。否則不加-s,-q作為字元串存在@ARGV中。可賦值-abc="abc"
跟在程序名後帶-的是選項,不帶-的不是,不是選項的項後面的所有都不是選項。
-P先運行c預處理器,輸出再由perl執行
-I指定目錄中的包含文件
-n循環處理多個文件。不用while
-p讀文件行並顯示。同n,不用print自動顯示。
-i編輯文件,讀然後寫迴文件。
-a分割行到@F
-F分割模式,指定分割符
-0
指定輸入行結束符,用八進製表示
-1
指定輸出行結束符
-x從消息中抽取程序。忽略行,直到遇到#!..perl。到文件尾,ctrl-d
ctrl-z __END__時結束
-u產生coremp
-U可以執行不安全操作
-S從路徑中查找程序
-D設置調試標志
-T寫安全程序。從外部獲得的數據不能作為命令或修改文件系統
-d使用調試器