zoukankan      html  css  js  c++  java
  • Perl 学习笔记-模块

    1.Perl模块介绍

      2个来源, 一个是随Perl发行版本一同打包, 只要安装了Perl就可以使用;  另一种是需要从CPAN上下载,自己安装.   寻找模块之前, 先检查系统上是否已经安装过了,  比如, 在命令行下输入:  perldoc CGI 就会出现文档说明, 说明已经存在CGI.pm模块了. 

      安装模块略过.

    2.使用简单模块

       use File::Basename; #在程序开头用use命令声明  

       use File::Basename qw/basename/; #只导入模块中的basename函数 

       File::Basename::basename $mypath; #加上模块全称调用 

    use File::Spec;
    use File::Basename;
    $old_name = "/usr/bin/perl";
    $dirname = dirname $old_name;
    $basename = basename $old_name;
    $new_name = File::Spec->catfile($dirname,$basename);
    print "$old_name
    ";
    print "$new_name
    ";
    rename ($old_name,$new_name) or warn "Can't rename '$old_name' to '$new_name': $!";

    3. 使用CGI模块

      CGI模块有两种风格: 函数接口和面向对象接口, 现在简单讨论前一种.

    # 这段代码解析CGI输入, 并以纯文本的方式来显示输入字段的名称和值
    use CGI qw(:all); #标签写法, 标示导入全部函数
    print header("text/plain"); #Content-Type: text/html; charset=ISO-8859-1
    foreach my $param (param()){
        print "$param: ".param($param)."
    ";
    }
    # 这段代码输出HTML格式结果.
    use CGI qw(:all);
    print header(), start_html("This is the page title"), h1("Input parameters");
    my $list_items;
    foreach my $param (param()){
        $list_items .= li("$param: ".param($param));
    }

      CGI模块还能处理cookie信息, 页面重定向已经多重页面表单等...

    4.数据库与DBI(数据库接口)

      DBI没有内置在Perl中;  不管哪种常见的数据库,都可以使用相同的接口进行操作;  支持对ODBC的驱动操作;   安装DBI之后必须安装相应的DBD(数据库驱动程序) ,可以在CPAN上搜索. DBI是面向对象模块.

    use DBI;
    # $data_source 指定要连接的数据库信息, 以及使用哪一种DBD作底层交互, 例如对PostgreSQL,驱动器是DBD::Pg模块
    my $data_source = "dbi:Pg:dbname=name_of_database"; #PostgreSQL
    $dbh = DBI->connect($data_source, $username, $password);
    # 连接数据库后可以进行查询操作
    $sth = $dbh->prepare("SELECT * FROM foo WHERE bla");
    $sth->execute();
    @row_ary = $sth->fetchrow_array;
    $sth->finish;
    # 完成工作后断开连接
    $dbh->disconnect();
  • 相关阅读:
    每天学点Linux-选取命令CUT和GREP
    每天学点Linux-切割命令split
    基于netty-socketio的web推送服务
    Redis学习-LUA脚本
    spring中InitializingBean接口使用理解
    外包采用Gradle生成多套app打包
    Android Studio 快捷键 for mac
    使用ClipboardUtils兼容API LEVEL 11以下实现复杂粘贴
    finished with non-zero exit 添加v7包报错的问题
    Infer初体验 for Android
  • 原文地址:https://www.cnblogs.com/roger9567/p/4537393.html
Copyright © 2011-2022 走看看