Perl脚本常用操作

Perl脚本实战

一、Perl脚本连接数据库

#! /usr/bin/perl
use URI::Escape;
use POSIX qw(strftime);
use DBI;
require "public.pl";
#$file=$ARGV[0];              #获取第一个输入数据
my $source_file = "read.log"; #读取文件
my $dest_file = "write.txt";  #写入文件
my $db = DBI->connect("DBI:mysql:database=mysql;host=127.0.0.1", "root", "", {'RaiseError' => 1});
open (FILE,"<$source_file") or die "Cannot open file $!\n";
open (SORTED,">$dest_file") or die "Cannot open file $!\n";
while(defined (my $line = <FILE>))
{
        chomp($line);         #读取行
        #@arr=split(/\s/,$line);
        #$app=$arr[0];
        #$tel=$arr[1];
        $log="log201706";
        $sql="select pid from $log.table where ... limit 1";
        print $sql."\n";
	my $rs = $db -> prepare($sql);
        $rs -> execute;
        if($rs->rows ne "0"){    
	        while(my $tmpRow = $rs->fetchrow_hashref()){
		   $p=$tmpRow->{'pid'};
		   print SORTED "$line\t$p\n";
	        }
       
### 常用 Perl 脚本示例 以下是一些常见的 Perl 脚本示例,涵盖基本功能和实际应用场景: #### 1. 打印 Hello World 最简单的 Perl 脚本用于打印 "Hello, world": ```perl print "Hello, world\n"; ``` 这是 Perl 的入门示例,展示了如何使用 `print` 函数输出文本[^1]。 #### 2. 文件内容倒序 以下脚本按行读取文件内容并将其倒序输出: ```perl perl -e 'print reverse <>' input.txt ``` 此命令通过标准输入读取文件内容,并使用 `reverse` 函数反转每一行的顺序[^3]。 #### 3. 按段落倒序整个文件 如果需要按段落(以空行分隔)倒序整个文件,可以使用以下脚本: ```perl perl -00e 'print reverse <>' input.txt ``` 这里 `-00` 选项启用段落模式,`reverse` 函数对段落进行倒序处理[^3]。 #### 4. 访问数据结构 Perl 提供了丰富的数据结构支持。以下是一个访问字符串、数组和哈希的示例: ```perl my $str = "string"; my @array = qw(w e r 5 y 0.0); my %hash = (1 => 5, r => 4, e => 6); print $str . "\n"; printf("@array len is: [%d]\n", scalar @array); printf("@array content is: [@array] \n"); for (my $i = 0; $i < @array; $i++) { printf("$i is $array[$i]\n"); } while ((my $k, my $v) = each(%hash)) { printf("$k is for $v\n"); } ``` 该脚本展示了如何定义和访问字符串、数组和哈希等常见数据结构[^4]。 #### 5. 编译 Perl 脚本为可执行文件 通过 PAR::Packer 工具,可以将 Perl 脚本编译为独立的可执行文件。例如: ```bash pp -o hello.exe hello.pl ``` 此命令将 `hello.pl` 编译为名为 `hello.exe` 的可执行文件[^2]。 #### 6. 运行外部程序 在 Perl 脚本中运行外部程序可以通过 `system` 或 `exec` 函数实现。例如: ```perl system("ls -l"); ``` 这将执行 `ls -l` 命令并显示当前目录的文件列表[^5]。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值