⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 perl11.htm

📁 Perl作为一门重要的工程语言
💻 HTM
📖 第 1 页 / 共 4 页
字号:
              This is a line from the second and last file.<br>
              Here is the last line of the last file.<br>
              -- end of current file --<br>
              $</blockquote>
                &nbsp;&nbsp;&nbsp;&nbsp;下面把eof改为eof(),第二个程序为:<br>
            <blockquote>1: #!/usr/local/bin/perl<br>
              2:<br>
              3: while ($line = &lt;&gt;) {<br>
              4: &nbsp; print ($line);<br>
              5: &nbsp; if (eof()) {<br>
              6: &nbsp; &nbsp; print ("-- end of output --\n");<br>
              7: &nbsp; }<br>
              8: }</blockquote>
                &nbsp;&nbsp;&nbsp;&nbsp;运行结果如下:<br>
            <blockquote>$ program file1 file2<br>
              This is a line from the first file.<br>
              Here is the last line of the first file.<br>
              This is a line from the second and last file.<br>
              Here is the last line of the last file.<br>
              -- end of output --$</blockquote>
                &nbsp;&nbsp;&nbsp;&nbsp;这时,只有所有文件都读过了,eof()才返回真,如果只是多个文件中前几个的末尾,返回值为假,因为还有要读取的输入。<br>
            <a name=1.1.9>9)间接文件变量</a><br>
            &nbsp;&nbsp;&nbsp;&nbsp;对于上述各函数open, close, print, printf, write, 
            select和eof,都可以用简单变量来代替文件变量,这时,简单变量中所存贮的字符串就被看作文件变量名,下面就是这样一个例子,此例很简单,就不解释了。需要指出的是,函数open, 
            close, write, select和eof还允许用表达式来替代文件变量,表达式的值必须是字符串,被用作文件变量名。<br>
            <blockquote>1: #!/usr/local/bin/perl<br>
              2:<br>
              3: &amp;open_file("INFILE", "", "file1");<br>
              4: &amp;open_file("OUTFILE", "&gt;", "file2");<br>
              5: while ($line = &amp;read_from_file("INFILE")) {<br>
              6: &nbsp; &amp;print_to_file("OUTFILE", $line);<br>
              7: }<br>
              8:<br>
              9: sub open_file {<br>
              10: &nbsp; local ($filevar, $filemode, $filename) = @_;<br>
              11:<br>
              12: &nbsp; open ($filevar, $filemode . $filename) ||<br>
              13: &nbsp; &nbsp; die ("Can't open $filename");<br>
              14: }<br>
              15: sub read_from_file {<br>
              16: &nbsp; local ($filevar) = @_;<br>
              17:<br>
              18: &nbsp; &lt;$filevar&gt;;<br>
              19: }<br>
              20: sub print_to_file {<br>
              21: &nbsp; local ($filevar, $line) = @_;<br>
              22:<br>
              23: &nbsp; print $filevar ($line);<br>
              24: }</blockquote>
            <a name=1.2>2、跳过和重读数据</a><br>
            <p>
            <table border=1 cellspacing=1>
              <tr>
                <td>函数名</td>
                <td>seek</td>
              </tr>
              <tr>
                <td>调用语法</td>
                <td>seek (filevar, distance, relative_to);</td>
              </tr>
              <tr>
                <td>解说</td>
                <td>在文件中向前/后移动,有三个参数:<br>
                  1、filevar,文件变量<br>
                  2、distance,移动的字节数,正数向前移动,负数往回移动<br>
                  3、reletive_to,值可为0、1或2。为0时,从文件头开始移动,为1时,相对于当前位置(将要读的下一行)移动,为2时,相对于文件末尾移动。<br>
                  运行成功返回真(非零值),失败则返回零,常与tell函数合用。</td>
              </tr>
            </table>
            <p></p>
            <p>
            <table border=1 cellspacing=1>
              <tr>
                <td>函数名</td>
                <td>tell</td>
              </tr>
              <tr>
                <td>调用语法</td>
                <td>tell (filevar);</td>
              </tr>
              <tr>
                <td>解说</td>
                <td>返回从文件头到当前位置的距离。<br>
                  注意:<br>
                  1、seek和tell不能用于指向管道的文件变量。<br>
                  2、seek和tell中文件变量参数可使用表达式。</td>
              </tr>
            </table>
            <p></p>
            <a name=1.3>3、系统读写函数</a><br>
            <p>
            <table border=1 cellspacing=1>
              <tr>
                <td>函数名</td>
                <td>read</td>
              </tr>
              <tr>
                <td>调用语法</td>
                <td>read (filevar, result, length, skipval);</td>
              </tr>
              <tr>
                <td>解说</td>
                <td>read函数设计得与UNIX的fread函数等效,可以读取任意长度的字符(字节)存入一个简单变量。其参数有四个:<br>
                  1、filevar:文件变量<br>
                  2、result:存贮结果的简单变量(或数组元素)<br>
                  3、length:读取的字节数<br>
                  4、skipval:可选项,指定读文件之前跳过的字节数。<br>
                  返回值为实际读取的字节数,如果已到了文件末尾,则返回零,如果出错,则返回空串。</td>
              </tr>
            </table>
            <p></p>
            <p>
            <table border=1 cellspacing=1>
              <tr>
                <td>函数名</td>
                <td>sysread</td>
              </tr>
              <tr>
                <td>调用语法</td>
                <td>sysread (filevar, result, length, skipval);</td>
              </tr>
              <tr>
                <td>解说</td>
                <td>更快的读取数据,与UNIX函数read等效,参数与read相同。</td>
              </tr>
            </table>
            <p></p>
            <p>
            <table border=1 cellspacing=1>
              <tr>
                <td>函数名</td>
                <td>syswrite</td>
              </tr>
              <tr>
                <td>调用语法</td>
                <td>syswrite (filevar, data, length, skipval);</td>
              </tr>
              <tr>
                <td>解说</td>
                <td>更快的写入数据,与UNIX函数write等效,参数:<br>
                  1、filevar:将要写入的文件<br>
                  2、data:存贮要写入数据的变量<br>
                  3、length:要写入的字节数<br>
                  4、skipval写操作之前跳过的字节数。</td>
              </tr>
            </table>
            <p></p>
            <a name=1.4>4、用getc读取字符</a><br>
            <p>
            <table border=1 cellspacing=1>
              <tr>
                <td>函数名</td>
                <td>getc</td>
              </tr>
              <tr>
                <td>调用语法</td>
                <td>$char = getc (infile);</td>
              </tr>
              <tr>
                <td>解说</td>
                <td>从文件中读取单个字符。</td>
              </tr>
            </table>
            <p></p>
            <a name=1.5>5、用binmode读取二进制文件</a><br>
            <p>
            <table border=1 cellspacing=1>
              <tr>
                <td>函数名</td>
                <td>binmode</td>
              </tr>
              <tr>
                <td>调用语法</td>
                <td>binmode (filevar);</td>
              </tr>
              <tr>
                <td>解说</td>
                <td>当你的系统(如类DOS系统)对文本文件和二进制文件有所区别时使用。必须在打开文件后、读取文件前使用。</td>
              </tr>
            </table>
            <p></p>
            <a name=2></a>二、目录处理函数
            <p>
            <table border=1 cellspacing=1>
              <tr>
                <td>函数名</td>
                <td><a name=2.1>mkdir</a></td>
              </tr>
              <tr>
                <td>调用语法</td>
                <td>mkdir (dirname, permissions);</td>
              </tr>
              <tr>
                <td>解说</td>
                <td>创建新目录,参数为:<br>
                  1、dirname:将要创建的目录名,可以为字符串或表达式<br>
                  2、permissions:8进制数,指定目录的访问权限,其值和意义见下表,权限的组合方法为将相应的值相加。</td>
              </tr>
            </table>
            <p></p>
            <p>
            <table border=1 cellspacing=1>
              <tr>
                <td>值</td>
                <td>权限</td>
              </tr>
              <tr>
                <td>4000 &nbsp;</td>
                <td>运行时设置用户ID &nbsp;</td>
              </tr>
              <tr>
                <td>2000</td>
                <td>运行时设置组ID</td>
              </tr>
              <tr>
                <td>1000</td>
                <td>粘贴位</td>
              </tr>
              <tr>
                <td>0400</td>
                <td>拥有者读权限</td>
              </tr>
              <tr>
                <td>0200</td>
                <td>拥有者写权限</td>
              </tr>
              <tr>
                <td>0100</td>
                <td>拥有者执行权限</td>
              </tr>
              <tr>
                <td>0040</td>
                <td>组读权限</td>
              </tr>
              <tr>
                <td>0020</td>
                <td>组写权限</td>
              </tr>
              <tr>
                <td>0010</td>
                <td>组执行权限</td>
              </tr>
              <tr>
                <td>0004</td>
                <td>所有人读权限</td>
              </tr>
              <tr>
                <td>0002</td>
                <td>所有人写权限</td>
              </tr>
              <tr>
                <td>0001</td>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -