#########css
分類: Python/Rubyhtml
2012-12-27 17:21:14mysql
分類: Oraclelinux
2012-09-03 11:49:39正則表達式
1.安裝DBI和DBD::Oracle 模塊。sql
下載地址:http://search.cpan.org/shell
搜索DBI,DBD::Oracle數據庫
若是你的linux能夠鏈接網絡,執行命令:express
#wget http://search.cpan.org/CPAN/authors/id/T/TI/TIMB/DBI-1.622.tar.gz數組
#wget http://search.cpan.org/CPAN/authors/id/P/PY/PYTHIAN/DBD-Oracle-1.50.tar.gz
下載到當前目錄。
2.安裝
這裏主要都是源碼安裝。
解壓到目錄:DBI-1.622
#tar –zxvf DBI-1.622.tar.gz
安裝能夠查看README文檔。
通常步驟爲
DBD::Oracle安裝與DBI相同。
3.
配置環境變量
# export ORACLE_HOME=/u01/oracle
# export ORACLE_USERID='scott/tiger@ora11gR2'
# export PATH=$ORACLE_HOME/bin:$PATH
# export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
上面的方法只在當前登陸環境有效,從新登錄後還須要從新配置。
這裏建議的方法是使用Oracle 用戶。或者將Oracle用戶下.bash_profile文件拷貝到root目錄下。
注意:LD_LIBRARY_PATH必定要修改,不然會報以下錯誤:
install_driver(Oracle) failed: Can't load '/usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/auto/DBD/Oracle/Oracle.so' for module DBD::Oracle: libclntsh.so.10.1: cannot open shared object file: No such file or directory at /usr/lib/perl5/5.8.5/i386-linux-thread-multi/DynaLoader.pm line 230.
4.數據庫鏈接簡單示例:
點擊(此處)摺疊或打開
-> Perl 變量
變量是存儲在內存中的數據,建立一個變量即會在內存上開闢一個空間。
解釋器會根據變量的類型來決定其在內存中的存儲空間,所以你能夠爲變量分配不一樣的數據類型,如整型、浮點型、字符串等。
上一章節中咱們已經爲你們介紹了Perl的三個基本的數據類型:標量、數組、哈希。
標量 $ 開始, 如$a $b 是兩個標量。
數組 @ 開始 , 如 @a @b 是兩個數組。
哈希 % 開始 , %a %b 是兩個哈希。
Perl 爲每一個變量類型設置了獨立的命令空間,因此不一樣類型的變量可使用相同的名稱,你不用擔憂會發生衝突。例如 $foo 和 @foo 是兩個不一樣的變量。
-> 運算符:
eq 檢查左邊的字符串是否等於右邊的字符串,若是是返回 true,不然返回 false。
-> 子函數
用戶能夠經過改變 @_ 數組中的值來改變相應實際參數的值。
向子程序傳遞列表
因爲 @_ 變量是一個數組,因此它能夠向子程序中傳遞列表。
但若是咱們須要傳入標量和數組參數時,須要把列表放在最後一個參數上,以下所示:
->正在表達式
匹配:m//(還能夠簡寫爲//,略去m)
替換:s///
轉化:tr///
這三種形式通常都和 =~ 或 !~ 搭配使用, =~ 表示相匹配,!~ 表示不匹配。
替換操做符 s/// 是匹配操做符的擴展,使用新的字符串替換指定的字符串。基本格式以下:
s/PATTERN/REPLACEMENT/;
PATTERN 爲匹配模式,REPLACEMENT 爲替換的字符串。
例如咱們將如下字符串的 "google" 替換爲 "runoob":
實例
#!/usr/bin/perl
$string = "welcome to google site.";
$string =~ s/google/runoob/;
print "$string\n";
更多正則表達式規則
abc 匹配含有 abc 的字符串 (pattern) () 這個符號會記住所找尋到的字符串,是一個很實用的語法.第一個 () 內所找到的字符串變成 $1 這個變量或是 \1 變量,第二個 () 內所找到的字符串變成 $2 這個變量或是 \2 變量,以此類推下去.
-> push 語法
1. push @ARRAY, LIST
將列表的值放到數組的末尾
#!/usr/bin/perl
# 建立一個簡單是數組
@sites = ("google","runoob","taobao");
$new_size = @sites ;
print "1. \@sites = @sites\n"."原數組長度 :$new_size\n";
# 在數組結尾添加一個元素
$new_size = push(@sites, "baidu");
print "2. \@sites = @sites\n"."新數組長度 :$new_size\n";
->eval 語法
#!/usr/bin/perl -w
push ( @program,'$i = 1;');
push ( @program,'$i = 3; $j = 2; $k = $i + $j');
push ( @program, '$i = 3; return 24; $k = $i + $j');
foreach $exp (@program)
{
$rtn =eval($exp);
print $rtn,"\n";
}
在執行時, Perl 解釋器會首先解析表達式的值,而後將表達式值做爲一條 Perl 語句插入當前執行上下文。因此,新生成的語句與 eval 語句自己具備相同的上下文環境。這種方式中,每次執行eval 語句,表達式都會被解析。因此,若是 eval EXPR 若是出如今循環中,表達式可能會被解析屢次。 eval 的這種方式使得 Perl 腳本程序能實時生成和執行代碼,從而實現了「動態代碼」。
測試代碼以下: eval 至關於 EOF linux ,須要轉義 符號
#$a = 19;
eval "unless (29 < 20) { print \"KO\";print \"KO\";}";
unless (29 < 20) { print "KO";print "KO";};
print "p";
• eval BLOCK
• eval EXPR
• eval
eval 關鍵字在Perl 裏起兩種不一樣的但相關的做用。這些目的是用兩種形式的語法
來表現的, eval BLOCK 和eval EXPR。第一種形式捕獲那些致命的運行時例外
(錯誤),相似於C++ 或Java 裏的「try 塊」。
————————————————
版權聲明:本文爲CSDN博主「zhaoyangjian724」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連接及本聲明。
原文連接:https://blog.csdn.net/zhaoyangjian724/article/details/51526721/
-> unless 語法
unless(boolean_expression 1){
# 在布爾表達式 boolean_expression 1 爲 false 執行
our 和 my 同樣,都是對變量的聲明,
不過 our 聲明的是包全局變量,
而 my 聲明的是詞法變量。
不過,通過 our 聲明的變量,它會變得像一個詞法變量同樣,
其實這也是 our 存在的目的:用來欺騙 strict pragma,使 strict 覺得它是一個詞法變量,其實卻不是。
有一個簡單的辦法能夠理解 our:
1,你就把 our 聲明的變量和 my 聲明的當成同樣。
2,記住 our 和 my 的區別:our 聲明的是一個包全局變量,所以在符號表中存儲(能夠經過全限定在任何地方訪問),而 my 聲明的是一個真正的詞法變量,只能在閉合塊中訪問。
代碼例子
my $var = 1;
{
my $var = 2;
print $var, "\n";
}
print $var, "\n";
輸出:
2
1
our $var = 1;
{
our $var = 2;
print $var, "\n";
}
print $var, "\n";
輸出:
2
2
ps:
{} 中的 「 須要加入\ 轉義