<dd id="sga4y"><optgroup id="sga4y"></optgroup></dd>
<nav id="sga4y"><code id="sga4y"></code></nav>
  • <optgroup id="sga4y"></optgroup>

    ??????? Perl5????????

    ???require????
      1??require????????????
      2????require???Perl?·Ú
    ??????
      1?????????
      2????????§Ý?
      3??main??
      4??????????
      5???????????
      6???????????
      7???e????????????
      8????????????
      9??????????
    ???????
      1?????????
      2?????????
      3??????????

    ???require????
        ??require???????????????????????????????????íà??myfile.pl???§Ø?????Perl?????????????require ("myfile.pl"); ??????§Ñ???????????Perl???????????????????????????????@INC???????????????myfile.pl?????????????????§Ö????????§µ?????????????????????????
        Can't find myfile.pl in @INC
        ??????????¨°?????????????????????????????????require??????????????????????????????myfile.pl??????????
        print ("hello, world!\n");
        $var = 0;
        ??????????????Perl????????????§Õ?????????????
        myfile.pl did not reture true value
        ?????¨¹?????????????????require??????????»Ç
    @reqlist = ("file1.pl", "file2.pl", "file3.pl");
    require ($reqlist[$0]);
    require ($reqlist[$1]);
    require ($reqlist[$2]);
        ?????????????????????
        require;
        ?????????$_??????????????????require??
        ??????@INC???§Ø?????§Ü????????????????§Ö????????????
    1??require????????????
        ??require?????????????????????Perl??????????????????¡ê?
    a??????????????????
    b????????????????????????§µ?????????????????
    c?????????¦Â????????????????????????? 1;
    d??????????????require?????????????????????
    e????????????????? -I ?????????????????????????require???????????@INC?????§³?
        ???»Ç??????/u/perldir?§Õ??????Perl???????????mysub?????????mysub.pl?§³???????????????????
        unshift (@INC, "/u/perldir");
        require ("mysub.pl");
        ??unshift????e???/u/perldir????@INC???ï…??require????y?mysub.pl??????????????????????????????
    ???
    1????????unshift????@INC???????????????push?????push?????@INC???¦Â???????????????????
    2????????????????/usr/local/lib/perl?§Ö???????????????????????????require????????????§Ö???????
    2????require???Perl?·Ú
        Perl 5?§µ???????require?????????????????????Perl?·Ú????Perl??????????require???????????????????·Ú???????????????????§Ú¨®??????íà?????????????Perl???????5.001????????????§Ú¨®???
        require 5.001;
    ??????
        Perl???????????????????????????????§µ?perl?????????????????????(package)??
    1?????????
        ??????????§á??????????????????????????????????????????
        package mypack;
        ?????????????mypack?????????????????§Ò??????????????????????e????????????§µ?????????????package???????
        ???????????????????????????????????????????????????????????????????????????????????????????????????»Ç
    $var = 14;
    package mypack;
    $var = 6;
        ??????????????$var????????main??????§µ????????????????????????$var????????mypack?????????§³?
    2????????§Ý?
        ???????????????????????§Ý????»Ç
    1: #!/usr/local/bin/perl
    2:
    3: package pack1;
    4: $var = 26;
    5: package pack2;
    6: $var = 34;
    7: package pack1;
    8: print ("$var\n");
        ???§ß?????¡ê?
    $ program
    26
    $
        ?????§Ø??????pack1???????§Õ???????$var?????????pack1???????§µ??????§Ø????¡ã?pack2???????§Õ????????????$var?????????pack2???????§³???????????????????$var????????????????§³????????????pack1?????????????pack1??????ÈÉ?????????§Ò?????????????????????e????????§Õ????????????????§Ø?$var??????pack1???§Ö?$var??????26??
    3??main??
        ???????????????????????????????????main?????????????????????????????????????????§Ý???????????????????????????main????
        package main;
        ??????????????????????????????????????????????????????????????????
    4??????????
        ????????§á??????????????§Ö??????????????????????????????????????????????»Ç
    package mypack;
    $var = 26;
    package main;
    print ("$mypack'var\n");
        ????$mypack'var?mypack???§Ö????$var??
        ?????Perl 5?§µ???????????????e????????$mypack::var??????????????????????????????·Ú??¦Ä??????
    5???????????
        ??Perl 5?§µ?????????????????????????
         package;
        ????????§Ö??????????????????????????????§¹--????
         $mypack::var = 21; #ok
         $var = 21;   #error - no current package
        ????????????package???????????????
    6???????????
        ???????????????§Ö??????????????????»Ç
    package mypack;
    subroutine mysub {
      local ($myvar);
      # stuff goes here
    }
        ????mysub??myvar?????mypack???????????mypack??????????mysub????????????$mypack'mysub??
        ??????????????§Ý?????
    package pack1;
    subroutine mysub {
      $var1 = 1;
      package pack2;
      $var1 = 2;
    }
        ??¦Ä???????????????$var1????????pack1?§µ???????pack2?§µ????§Ö???????????????????????????????????????????????????
    7???e????????????
        ??????????????????????????????????????????????????§µ??????????????????????????????????????????????????????????????????????????????????????????????????????????????¨¢????????????
    1 : package privpack;
    2 : $valtoprint = 46;
    3 :
    4 : package main;
    5 : # This function is the link to the outside world.
    6 : sub printval {
    7 :   &privpack'printval();
    8 : }
    9 :
    10: package privpack;
    11: sub printval {
    12:   print ("$valtoprint\n");
    13: }
    14:
    15: package main;
    16: 1; # return value for require
        ???????????????printval?????????????
        ?????????????????????????????????§Ó????????????main???????????privpack????6~8?§Ø?????????printval???????????????????¨¢?printval???????$valtoprint???????????????privpack?§Ø??????¨¢???15??16?????????????????require????????????????15?§ß???????????????main??16?§Ù????????require???????
    8????????????
        ???§Ò???????????????§Ö???????main???????????
  • ???????STDIN, STDOUT, STDERR ?? ARGV
  • ????%ENV, %INC, @INC, $ARGV ?? @ARGV
  • ???????????????????????
  • 9??????????
        ??????§Ó??????????????%_package?????package?????????????????????????%_main?????????????
        ????????????????????

    ???????
        ?????????????????????????????????????????????????????????????????????????????????????????????????????????î•
    1?????????
        Perl 5???e?????????ï…?????????????????????????????§³????íà???Mymodult????????????Mymodult.pm?§µ??????.pm???Perl Module?????????????Mymodult?????????myfunc1??myfunc2??????$myvar1??$myvar2??
    1 : #!/usr/local/bin/perl
    2 :
    3 : package Mymodule;
    4 : require Exporter;
    5 : @ISA = qw(Exporter);
    6 : @EXPORT = qw(myfunc1 myfunc2);
    7 : @EXPORT_OK = qw($myvar1 $myvar2);
    8 :
    9 : sub myfunc1 {
    10:   $myvar1 += 1;
    11: }
    12:
    13: sub myfunc2 {
    14:   $myvar2 += 2;
    15: }
        ??3~7????????Perl??úE?Ùã?????3?§Ø????????4?§Ñ???????Perl???Exporter??6??7?§ß???????????????????????????????6?§Õ??????@EXPORT?????????ï…???????§Ö??????????????????????????myfunc1??myfunc2???????????????¦Ê???????§Ø??áÑ??§Ú???????@EXPORT???????????§Ö????????????????¨¢???7?§Õ???????????@EXPORT_OK?????????ï…???§Ü??§á???????????????????????$myvar1??$myvar2??
    2?????????
        ????ùy?????Perl?????????use????????????Mymodule??ï“
         use Mymodule;
        ?????????Mymodule?§Ö?????????????????????
        ?????????????no?????????????Mymodule???????
         no Mymodule;
        ???žL???????????????????????????integer??????????????????????????????????????????????????????
    1: #!/usr/local/bin/perl
    2:
    3: use integer;
    4: $result = 2.4 + 2.4;
    5: print ("$result\n");
    6:
    7: no integer;
    8: $result = 2.4 + 2.4;
    9: print ("$result\n");
        ??????????¡ê?
    $ program
    4
    4.8
    $
        ???use??no?????????????§µ???????????§¹??¦¶??????????»Ç
    use integer;
    $result1 = 2.4 + 2.4;
    if ($result1 == 4) {
    no integer;
    $result2 = 3.4 + 3.4;
    }
    $result3 = 4.4 + 4.4;
        ?????????¡ê?
    4
    6.8
    8
        ????no??????if???????§¹??????if????????integer??ï…???4.4?????????????????4??
    3??????????
        Perl 5???????????????????ï…??????use?????no?????????????????????????§»??ï“

    integer ???????????
    Diagnostics   ??????????????????—¥
    English ????????????????????????
    Env ????????????Perl???
    POSIX POSIX?????IEEE 1003.1????Perl???  
    Socket ???C????????????????

        Perl??????????????????????§Ò??
        ???????????Perl 5???§Õ????????????ï…CPAN(Comprehensive Perl Archive Network)??Perl??????????????§Ò??????CPAN?????????????????http://www.perl.com/perl/CPAN/README.html??

    ????? ????? ??


    paper | appdir | ssv 97av