亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Perl > 正文

PerlCookbook2介紹

2019-11-18 17:22:38
字體:
來源:轉載
供稿:網友

摘要:SQL語言在標準數據庫以外的應用

問題:你想對一個非關系型數據庫結構進行復雜的SQL查詢。

解決:使用CPAN上的DBD::SQLite模塊

useDBI;$dbh=DBI->connect("dbi:SQLite:dbname=/Users/gnat/salaries.sqlt","","",{RaiseError=>1,AutoCommit=>1});$dbh->do("UPDATEsalariesSETsalary=2*salaryWHEREname='Nat'");$sth=$dbh->SQLite定義的數據庫里面沒有數據類型這個概念。不管你在創建一個表的時候指定的是什么數據類型,以后你可以在其中放入任何類型的數值(包括字符型,數字型,日期型,二進制對象/blob)。實際上,創建表的時候你甚至可以不指定數據類型。
CREATETABLEpeople(id,name,birth_year);
SQLite只有在要比較數據的時候,如用WHERE子句或對某些值進行排序,才會考慮數據類型。SQLite在比較數據的時候,只考慮被比較對象的類型,而不管被比較對象所在列的其它數據是什么類型。像Perl一樣,SQLite只能識別字符型和數字型。兩個數值總是以浮點類型進行比較,兩個字符串直接比較。當不同類型的數據比較的時候,數字總是比字符小。只有一種情況SQLite才會關心你為某一列申明的數據類型(需要創建一個值自增加的列的時候)。你可以把這列的類型指定為:“INTEGERPRIMARYKEY”。
CREATETABLEpeople(idINTEGERPRIMARYKEY,name,birth_year);
例子14-6說明這一切是怎么工作的
例14-6整形主鍵#!/usr/bin/perl-w#Word)=@$row;print"$wordhasid$id/n";}

SQLite支持8位長的字符編碼,但是不識別ASCII中的NULL符“/0”。唯一的變通方法就是在你存儲數據之前自行編碼,然后在取出數據之后再手工解碼,就象URL編碼或Base64編碼方式一樣。這甚至可以用在BLOB字段里面。

參照:“ExecutinganSQLCommandUsingDBI”CPAN上DBD::SQLite模塊的正式文檔。它在SQLite的主頁上photoshopped/nat.jpg',Filename=>'gnat-face.jpg');

$msg->attach(Type=>'TEXT',

Data=>'Ihopeyoucanusethis!');
 
最后,發送這份郵件,發送它的方法是可選的:
$msg->send();#默認的方法是用sendmail規則發送#指定其它的方法$msg->send('smtp','mailserver.example.com');

 

討論:

MIME::Lite模塊創建并發送帶MIME指定類型附件的郵件。MIME是MultimediaInternetMailExtensions的縮寫,而且也是在郵件中附帶各種文件文檔的標準方式。但是,這個規則并不能從郵件信息中把附件提取出來。如果你想從郵件信息中提取MIME指定類型附件,可以參考這篇文章“ExtractingAttachmentsfromMail”

當你創建MIME
::Lite對象,以及向創建的對象中添加內容的時候。后面的參數采用“參數名=>值”的有名對形式。有名對的參數名部分應該暗示它代表的郵件頭(如,From,To,Subject)以及其它其它MIME::Lite所特有的東西。如果參數名是郵件頭,后面應該加上冒號,如:
$msg=MIME::Lite->new('X-Song-Playing:'=>'NatchezTrace');

然而,當參數名代表的郵件頭在表18-2中時,后面可以不加冒號。下表中*代表通配符,例如Content-*可以代表Content-Type和Content-ID但是不代表Dis-Content

表18-2:MIME::Lite頭

ApprovedEncryptedReceivedSenderBccFromReferencesSubjectCcKeywordsReply-ToToCommentsMessage-IDResent-X-Content-*MIME-VersionReturn-PathDateOrganization

MIME::Lite參數類型的完整列表在表18-3中

表18-3:MIME::Lite參數類型

DataFHReadNowDatestampFilenameTopDispositionIdTypeEncodingLengthFilenamePath

MIME::Lite模塊的參數類型決定附件的類型和附件的添加方法:

Path指定作為附件的文件的路徑Filename指定接受方保存附件時,附件的默認文件名。如果指定了Path參數,那么默認的文件名就是路徑中的名字Data指定附件添加的日期Type指定待添加附件的文件編碼類型Disposition它的值只能是inline和attachment。前者指定接受方打開郵件的時候附件內容會跟在郵件正文后顯示,而不單獨作為一個附加物。后者指定接受方應該指定一個附件的解碼方法,并且保存附件,此時會有提示FH指定一個讀取附件的開放的文件句柄

這兒有幾個有用的附件編碼類型:TEXT代表text/plain,為Type的默認值;BINARY是application/octet-stream的縮寫;multipart/mixed表明郵件有附件;application/msword表明附件為微軟的Word文檔;application/vnd.ms-Excel表明附件為微軟的Excel文檔;application/pdf表明附件為PDF文檔;image/gif,image/jpeg,image/png分別指定GIF,JPEG,PNG文件;audio/mpeg指定MP3格式文件;video/mpeg指定MPEG格式影片;video/quicktime指定Quicktime格式文件。

發送郵件的唯一兩種方法是sendmail和Net::SMTP。調用send方法時,若第一個參數為“smtp”,則用Net::SMTP發送郵件。send的其它參數都傳給Net::SMTP。
#timeoutof30seconds$msg->send("smtp","mail.example.com",Timeout=>30);
如果你想創建多個MIME::Lite對象,也就是發送多附件,你可以把send作為類方法調用,此時默認發送方法會被替換。
MIME::Lite->send("smtp","mail.example.com");$msg=MIME::Lite->new(opts);#...$msg->send();#sendsusingSMTP

如果你要處理多個消息,用好ReadNow參數。它指定附件應該立即從文件或文件句柄中讀取發送,而不是在發送前轉化為字符串。

發送郵件不是MIME::Lite能做的唯一事情。你還可以用它把最后的郵件內容變成字符串:

$text=$msg->as_string;
print方法可以把消息的字符串形式寫入一個文件句柄自定的文件中:
$msg->print($SOME_FILEHANDLE);
例子18-3是一個發送郵件的程序,它把在命令行輸入的文件名作為附件例18-3:發送帶附件的郵件
#!/usr/bin/perl-w#mail-attachment-sendfilesasattachmentsuseMIME::Lite;useGetopt::Std;my$SMTP_SERVER='smtp.example.com';#可根據自己情況改變my$DEFAULT_SENDER='sender@example.com';#同上my$DEFAULT_RECIPIENT='recipient@example.com';#同上MIME::Lite->send('smtp',$SMTP_SERVER,Timeout=>60);my(o,$msg);#processoptionsgetopts('hf:t:s:',/o);$o{f}||=$DEFAULT_SENDER;$o{t}||=$DEFAULT_RECIPIENT;$o{s}||='Yourbinaryfile,sir';if($o{h}or!@ARGV){die"usage:/n/t$0[-h][-ffrom][-tto][-ssubject]file.../n";}#constructandsendemail$msg=newMIME::Lite(From=>$o{f},To=>$o{t},Subject=>$o{s},Data=>"Hi",Type=>"multipart/mixed",);while(@ARGV){$msg->attach('Type'=>'application/octet-stream','Encoding'=>'base64','Path'=>shift@ARGV);}$msg->send();

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美精品18videos性欧美| 日韩一区二区三区国产| 欧美成年人视频网站| 亚洲女同性videos| 亚洲男人7777| 中日韩午夜理伦电影免费| 日韩精品亚洲视频| 亚洲国产精品成人va在线观看| 黑人巨大精品欧美一区免费视频| 国产精品久久久久久久电影| www.日本久久久久com.| 色偷偷噜噜噜亚洲男人的天堂| 久久久91精品国产一区不卡| www.日韩.com| 欧美华人在线视频| 欧美另类高清videos| 欧美一区二区三区精品电影| 亚洲欧美日韩网| 国产一区二区在线免费| 亚洲美女在线观看| 中文字幕亚洲无线码a| 国产精品一区二区三区成人| 精品综合久久久久久97| 亚洲高清一二三区| 懂色av影视一区二区三区| 亚洲色图日韩av| 欧美大荫蒂xxx| 欧美诱惑福利视频| 精品中文字幕在线| 欧美影院久久久| 91亚洲人电影| 搡老女人一区二区三区视频tv| 中文字幕一区日韩电影| 日韩精品在线免费播放| 国产乱人伦真实精品视频| 欧美高清视频在线播放| 欧美激情亚洲精品| 午夜精品久久久久久久男人的天堂| 中文字幕国产精品久久| 亚洲精品美女视频| 亚洲欧洲国产伦综合| 日韩在线免费视频| 欧美激情一区二区三级高清视频| 亚洲欧洲视频在线| 久久久精品999| 久久久国产精品免费| 琪琪第一精品导航| 亚洲影视中文字幕| 精品亚洲一区二区三区| 日韩精品一二三四区| 日韩中文字幕不卡视频| 久久露脸国产精品| 日韩69视频在线观看| 日韩中文字幕欧美| 亚洲毛片在线看| xvideos亚洲人网站| 亚洲理论电影网| 国产主播在线一区| 国产成人小视频在线观看| 国产精品视频资源| 91久久国产婷婷一区二区| 欧美激情视频在线免费观看 欧美视频免费一| 亚洲国产天堂久久综合| 亚洲在线第一页| 日韩国产高清视频在线| 久久视频免费观看| 亚洲精品suv精品一区二区| 亚洲综合在线播放| 日韩精品福利在线| 欧美日韩在线免费| 亚洲精品国产综合区久久久久久久| 亚洲欧美日韩视频一区| 日本久久久久久久久久久| 欧美福利视频在线观看| 亚洲精品电影在线| 色综合亚洲精品激情狠狠| 亚洲高清色综合| 日韩小视频在线观看| 欧美在线影院在线视频| 久久影院资源站| 国产精品mp4| 亚洲第一网站男人都懂| 欧美日韩精品在线视频| 日韩在线视频免费观看高清中文| 在线视频精品一| 尤物九九久久国产精品的特点| 国产精品视频资源| 精品成人在线视频| 欧美激情xxxx| 久久久久久久香蕉网| 国产精品极品尤物在线观看| 国产精品高清在线观看| 成人国产亚洲精品a区天堂华泰| 日韩在线观看免费av| 亚洲人成亚洲人成在线观看| 日韩欧美在线视频日韩欧美在线视频| 亚洲精品综合精品自拍| 成人精品视频在线| 日韩av在线免费播放| 欧美激情一级欧美精品| 国产成人精品免费视频| www.日本久久久久com.| 国产精品h在线观看| 国产va免费精品高清在线| 成人欧美一区二区三区黑人孕妇| 亚洲国产高清福利视频| 裸体女人亚洲精品一区| 国产视频观看一区| 亚洲精品免费一区二区三区| 亚洲欧美一区二区三区在线| 夜夜嗨av一区二区三区免费区| 久久777国产线看观看精品| 热99久久精品| 在线视频欧美日韩| 91麻豆国产语对白在线观看| 国产精品一区二区久久久| 久久久99久久精品女同性| 成人福利网站在线观看11| 欧美日韩色婷婷| 国产一区二区激情| 国产精品久久激情| 正在播放欧美一区| 精品久久久国产| 成人福利在线视频| 亚洲国产成人91精品| 精品久久久香蕉免费精品视频| 久久五月情影视| 欧美又大又硬又粗bbbbb| 欧美电影免费观看高清| 国产精品91在线观看| 亚洲精品有码在线| 欧美在线观看日本一区| 亚洲国产高潮在线观看| 午夜精品一区二区三区av| 亚洲欧洲在线播放| 亚洲石原莉奈一区二区在线观看| 国产99久久精品一区二区| 国产欧美日韩中文字幕| 亚洲国产精品va在线看黑人| 国产91成人在在线播放| 萌白酱国产一区二区| 亚洲已满18点击进入在线看片| 国产精品r级在线| 日本精品视频网站| 性亚洲最疯狂xxxx高清| 日本一区二区在线免费播放| 欧美极品少妇xxxxⅹ免费视频| 日韩精品免费在线| 亚洲国产婷婷香蕉久久久久久| 国产精品99蜜臀久久不卡二区| 57pao精品| 国产精品十八以下禁看| 亚洲国产中文字幕在线观看| 午夜精品久久久久久久男人的天堂| 亚洲国产小视频| 日本成人精品在线| 国产日本欧美一区二区三区在线| 在线观看91久久久久久| 成人久久久久久久| 中文欧美在线视频| 国产成人小视频在线观看| 欧美多人乱p欧美4p久久| 国产女人精品视频| 57pao国产成人免费|