Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何重新初始化perls格式处理器_Perl_Format - Fatal编程技术网

如何重新初始化perls格式处理器

如何重新初始化perls格式处理器,perl,format,Perl,Format,更新:从数据读取更改为从子系统获取数据 我必须给打印机写一个协议。打印机需要一个字符串来打印,所以我使用perls格式处理器 这是第一次,效果很好。但是如果我试着写两次协议, 打印的数据格式不正确 简而言之,我尝试的代码示例如下: !/usr/bin/perl 严格使用; 使用警告; 使用数据::转储程序; 使用utf8; 我的一美元; 我的b美元; 我的$c; 我的$protocol; 我的$h_协议; 格式F_TOP= -------------- 1 2 3 P:@ $% --------

更新:从数据读取更改为从子系统获取数据

我必须给打印机写一个协议。打印机需要一个字符串来打印,所以我使用perls格式处理器

这是第一次,效果很好。但是如果我试着写两次协议, 打印的数据格式不正确

简而言之,我尝试的代码示例如下:

!/usr/bin/perl 严格使用; 使用警告; 使用数据::转储程序; 使用utf8; 我的一美元; 我的b美元; 我的$c; 我的$protocol; 我的$h_协议; 格式F_TOP= -------------- 1 2 3 P:@ $% -------------- . 格式F_条目=
@ 我可以重复你在问题中提到的问题

只需在print_protocol sub内声明$h_protocol FH,并将其从第12行中删除即可

因此,sub中的代码将如下所示

sub print_protocol {    
    my $run = shift;
    print "$run\n";
    
    # Open protocol string as filehandle
    open my $h_protocol, ">", \$protocol;
    # Set format to protocol filehandle
    ...
    ...
}
现在脚本可以生成预期的结果。 输出:


通过查看代码,您试图读取两次数据。看看它是否有助于您读取两次数据。@vkk05啊,这就是为什么没有数据。。。我将编辑我的示例。作为题外话,与sprintf相比,格式是否有任何显著的优势?@mpapec是的,如果协议需要多个页面,某些行的格式会更复杂。。。这是一个基本的例子,但它显示了我的问题。实际上,我的头有16行代码和每个条目11个。你可能想考虑使用PelL6::为Pel5而不是格式化一个模块,到目前为止效果良好。我需要检查如何获得$h_协议的全局访问权限。在real中有一个初始化打开,选择,如果我使用两个变量,一个set_条目写入和一个print close sub.工作得很好:一个全局$h_协议和一个initialize sub:。。。打开我的$h_temp。。。然后是$h_protocol=$h_temp@安迪亚。可以但是为什么需要$h_协议作为全局变量呢?因为它很容易从任何地方写入协议。我讲的三个功能需要手柄。我认为,把它设为参数,只会让代码看起来更大。
-1-
---------------------------
1     2       3        P: 1
---------------------------
abc   def     ghi
jkl   mno     pqr

---------------------------
1     2       3        P: 2
---------------------------
abc   def     ghi
jkl   mno     pqr

---------------------------
1     2       3        P: 3
---------------------------
qwe   eqw     weq
-2-
---------------------------
1     2       3        P: 1
---------------------------
abc   def     ghi
jkl   mno     pqr

---------------------------
1     2       3        P: 2
---------------------------
abc   def     ghi
jkl   mno     pqr

---------------------------
1     2       3        P: 3
---------------------------
qwe   eqw     weq