Perl 工作积累(不定期更新)

1)url 判断是否合法:   /^(http:\/\/|https:\/\/)?((?:[A-Za-z0-9]+-[A-Za-z0-9]+|[A-Za-z0-9]+)\.)+([A-Za-z0-9]+)[\/\?\:]?.*$/

2)什么时候需要转义:1. 比如在"" 里面还要使用",则\";  2. 一些特殊字符

3)数据库乱码问题:在脚本中查询的表和插入的表都要设置同样的编码如utf8($db_url->do(set names utf8)), 在secureCRT显示时设置UTF-8,查询数据库显示前set names utf8;

4)打log问题:如果log文件没权限写入,那会将log信息输出在标准输出。secureCRT sz/rz 也会遇到目录权限的问题

5)倒数据不要全量重新倒,可以设定时间起始点甚至表自增id,从文件读出写入;当tmmp表为空时,perl
sql执行以下语句返回还是为真,需要再次判断idmax的值是否为""

mysql> select max(id) idmax from tmmp;

+-------+

| idmax |

+-------+

|  NULL |

+-------+

6)perl 对类型还是要注意,如$url为字符串,则如果判断 $url == 0 很可能为真

7) perl
的print $log "xxx" ;  syswrite $log, "xxxx";     perl中的printf很多字符打印有问题,最好是使用syswrite来打印数据

8) > or >> 如果文件不存在都会创建,只是truncate
or append的区别

9)sql 执行出错,页面出现很多乱码,包括log文件会有显示不了的字符,往往是因为插入的参数包含乱码,导致某些引号提早并上而执行出错,有种解决办法是只取参数的有些长度字段。

10)当log文件太大时,往往vim打开会显示为new file, 可以tail/head -n num file | more 来查看部分内容

11)$db->quote($url) 这样在插入sql时不用再对$url 加‘ ‘, 如果$url 内还有单引号会被转义; sql 执行出错很可能是引号提前闭合的问题

12) mysql> pager less 
多页显示

13)  select substring_index(‘xxx.xxx.xx.22‘, ‘.‘, -1)  // 得到22

14) perl中的散列赋值都是引用拷贝而非值拷贝

15) perl打印shell脚本的结果信息之前需要先chomp结果,否则打印出来的信息不对

16)  取出url的后缀,如html, php等

if ($url =~ /^(http:\/\/ | https:\/\/).*\/.*\.([^\/\.\?]+)/)

{

my $suffix = $2;

}

17) 从url中取出域名

my @tmp = split(/:/, $url); my @tmp2= split(/\//, $tmp[1]);  my $domain = $tmp2[2];

时间: 2024-11-06 00:58:37

Perl 工作积累(不定期更新)的相关文章

基于C/S架构的3D对战网络游戏C++框架 _【不定期更新通知】

由于笔者最近有比赛项目要赶,这个基于C/S架构的3D对战网络游戏C++框架也遇到了一点瓶颈需要点时间沉淀,所以近一段时间不能保证每天更新了,会保持不定期更新.同时近期笔者也会多分享一些已经做过学过的C++.服务器端开发.游戏开发相关的内容给大家(因为这些内容已经熟悉也积攒了一定量现有的笔记所以整理成博客会相对轻松些).感谢大家支持,深鞠躬.过两天笔者要去上海参加C++大会,回来后会把参会感悟也分享给大家的^__^.喜欢技术人的纯粹,没有等级之分,希望我们能一路一起进步,共同成长. 基于C/S架构

node.js项目开发问题集锦(不定期更新,随时把开发过程中遇到的问题加上)

1.用express开发站点时,怎么定义通用的头部和尾部 方案1:用类似asp时代的include添加,如ejs模板: <% include ../header.ejs %> <h1 class="page-header"> 这里是内容. 注:..表示header.ejs在上一级目录,ejs扩展名可以去掉,直接写:include ../header </h1> <% include ../footer %> 方案2:用类似于MVC的lay

工作积累之NDK编译STL (zhuan)

方法: 1.在jni目录下新建Application.mk; 加入 APP_STL :=  stlport_static  右边的值还可以换成下面几个: system - 使用默认最小的C++运行库,这样生成的应用体积小,内存占用小,但部分功能将无法支持 stlport_static - 使用STLport作为静态库,这项是Android开发网极力推荐的 stlport_shared - STLport 作为动态库,这个可能产生兼容性和部分低版本的Android固件,目前不推荐使用. gnust

adt-bundle和android studio下载地址(不定期更新)

因为众所周知的原因,android官网打不开.在这里公布IDE地址,可以用迅雷等软件直接下载. adt-bundle-windows-x86: http://dl.google.com/android/adt/adt-bundle-windows-x86-20140702.zip adt-bundle和android studio下载地址(不定期更新),布布扣,bubuko.com

leran html5(不定期更新)

采用Html5技术编写 了解HTML5请到:http://baike.baidu.com/link?url=4437QJzcpocoFR42wQf6DDOk-7Wj3_zrA7ft_ces0keEVjiCey2C4PyMKmiTt8Mg9YI2hWC7CXBxV7oLbT3Rg_ 开始学习吧! Learn Html5   By C.N.Chinese 1.伪元素 Home About News Develop Others style: #nav{ display:block;width:600

那些Java IDE工具(不定期更新)

一.Eclipse Eclipse是一个市场占有率很高的Java IDE工具. 官网地址:http://www.eclipse.org/ 下载地址:http://www.eclipse.org/downloads/ 二.... 那些Java IDE工具(不定期更新)

工作积累(五)——使用[email&#160;protected]注解实现常量功能

之前的博客中提到过如何通过 java.util.ResourceBundle 和 java.util.Properties类通过读取 key-value 文件的形式实现常量功能.其实 spring 已经通过@Value 注解实现,下面看看如何使用. 1.创建.properties文件: 在如下目录创建 keyvalue.properties文件src/main/resources/META-INF/spring/keyvalue.properties ,写入如下内容: test.value=il

DBA查询命令积累——不断更新

原文:DBA查询命令积累--不断更新 一.服务器配置: 1.兼容级别:兼容级别只影响指定数据库中的行为,而不会影响整个服务器上的行为. 1.1.查看数据库兼容级别及更改兼容级别: SELECT compatibility_level FROM sys.databases WHERE name=DB_NAME() 1.2.更改兼容级别:将某些数据库行为设置为与指定的 SQL Server 版本兼容. sp_dbcmptlevel [ [ @dbname = ] name ] [ , [ @new_

[工作积累] NDK通过Java获取package name 和version

////////////////////////////////////////////////////////////////////////// //Java code snippet //get APK's versionCode in AndroidManifest.xml public int getVersionCode() { int versionCode = 1; try{ PackageInfo packageInfo = this.getPackageManager().g