color]
【localtime】
my ($mday,$mon,$wday) = (localtime(time() - 86400 ))[3,4,6];
localtime基本格式:
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =
localtime(time);
【Perl中的URL编码和解码】
文章分类:JavaEye
今天我在项目上遇到一个问题,我要用写一个shell script去拷贝pdf文件,因为项目的需要,我要在原来文件名的后面加上一个子标题,然后问题出现在这个子标题上,因为我们知道文件名中是不可以有 \ / : * ? " < > 这些符号的.而我们的子标题中恰好有这些特殊字符.
如何过滤掉这些特殊字符呢?有一个办法就是利用URL编码的原理,将特殊字符转换成百分号的形式就可以了.
我们知道在java中,我们可以通过java.net.URLEncoder.encode()给一个URL编码,然后通过java.net.URLDecode.decode()解码.在javascript中也有类似功能的方法,escape()用于编码,unescape()用于解码.在shell中是没有这么强大的内置函数了,
相比之下用Perl来实现要简单的多,我可以在shell中调用perl的方法来实现encode的功能,代码如下:
<code>
#!/opt/perl-5.6.1/bin/perl
# -------------------------------------
# Encode url
# Jssay Jiang
# -------------------------------------
use strict;
my ($url) = @ARGV;
$url =~ s/([^A-Za-z0-9])/sprintf("%%%02X", ord($1))/seg;
print "$url";
#$url =~ s/\%([A-Fa-f0-9]{2})/pack('C', hex($1))/seg;
#print "$url";
exit 0;
</code>
PS:注释部分为解码方法.
Refer to http://www.jssay.com/blog/index.php/2009/10/20/perl%e7%9a%84url%e7%bc%96%e7%a0%81%e5%92%8c%e8%a7%a3%e7%a0%81/
【Grep】
In Perl:
#!/usr/bin/perl
my $string = ‘fin_helm’;
my @array = qw/full_plate manteau boots two_handed_sword fin_helm/;
if(grep $_ eq $string, @array)
{
print “$string is in the array”;
}
So, those codes do exactly the same.
If you don’t know much perl you will be wondering what does the grep function, the grep function examines each of an element of an array (represented with $_) and then we make a comparison or something with it, in this case $_ eq $string, grep, returns the elements with where true, in this case we are not requesting the elements, we are requesting a sacalar value, so, in perl 0 is false, and every other number is true, that will return 1, so its true, and the element is in the array
I hope you all find this useful, bye
工作中碰到的一个例子:
if (grep {$_ eq encode("utf8",$in)} @allword) {
print $replace,"\n";
}
分享到:
相关推荐
总之,Perl基础教程将带你走进这个富有表现力和强大功能的语言世界。通过深入学习,你不仅能理解Perl的基本语法,还能掌握如何利用Perl解决实际问题,从而在系统管理和自动化任务中发挥重要作用。无论你是想成为系统...
### PERL 基础教程知识点总结 #### Perl 概述 - **起源与发展**:Perl,全称为 Practical Extraction and Report Language(实用提取与报告语言),由 Larry Wall 开发,首次发布于1987年。最初设计目的是为了简化...
"Perl基础教程"是一本专为初学者设计的教材,旨在帮助新接触Perl的程序员快速掌握这门语言的基础知识。 首先,Perl的命名源自"Practical Extraction and Reporting Language"的首字母缩写,它具有灵活的语法和丰富...
综上所述,这个“perl基础入门”教程将引导初学者了解Perl的基本语法和常用技巧,包括变量、流程控制、函数、正则表达式等核心概念,并可能涉及在Linux环境中的应用以及简单的GUI编程。通过学习这个教程,新手可以为...
这份"perl基础教程"共包含十九章,旨在系统地介绍Perl语言的基本概念、语法和应用。下面,我们将深入探讨这些章节的主要内容。 第一章,Perl概述,会介绍Perl语言的历史背景、设计哲学以及它在不同领域的应用。Perl...
perl基础语法word汇总
Perl基础知识.pptx
Perl基础第一章 第1学时Perl 入门 第2学时Perl 的基本构件:数字和字符串 第3学时控制程序流 第4学时基本构件的堆栈:列表与数组 第5学时进行文件操作 第6学时模式匹配 第7学时哈希结构 第8学时函数
Perl是一种高级的、通用的脚本编程语言,由拉里·沃尔在1987年创建,最初设计目的是为了报表提取和文本处理。Perl融合了C、sed、awk、shell脚本等多种语言的特性,因此它具有强大的文本操作能力,同时具备高度的灵活...
本教程“零起点Perl入门基础教程”是专为初学者设计的,旨在帮助你快速掌握Perl的基础知识。 Perl的特点之一就是其语法的灵活性,它借鉴了C、sed、awk等多种语言的特性,使得Perl在处理字符串和数组方面表现出色。...
Perl是Practical Extraction and Report Language的缩写,它是由Larry Wall设计的,并由他不断更新和维护,用于在UNIX环境下编程。
初学者可以从理解Perl基础语法开始,逐步学习网络编程相关的模块和概念,通过实践项目来巩固知识。《Perl网络编程基础篇》可能是这样一个起点,它会引导你进入Perl在网络世界中的奇妙之旅。通过阅读和练习其中的示例...
对于初学者来说这是学习Perl很好的资料,它从工程的角度对Perl进行了全面的介绍.
在"perl基础"部分,读者将学习到Perl语言的基本语法和编程概念。这包括变量的使用,如标量、数组和哈希,以及它们的声明和操作。还将深入理解Perl中的控制结构,如条件语句(if/else)和循环(for, while)。此外,...