如何使用变量而不是文件句柄

我有一个大的数据文件dump.all.lammpstrj,我需要分流/归类到一系列文件,如Z_1_filenameZ_2_filenameZ_3_filename等基于每个记录的坐标。

坐标以无序的方式保存,因此我的程序读取每一行并确定该记录应发送到哪个文件。

我用一个变量 $filehandle = "Z_$i_DUMP"

我希望像这样打开所有可能的文件

for ( my $i = 1; $i <= 100; $i++ ) {
  $filehandle = "Z_$i_DUMP";
  open $filehandle,'>', "Z_$i_dump.all.lammpstrj.dat";
  ...
}

但是在运行程序时,我收到一条消息

不能将字符串(“ Z_90_DUMP”)用作符号引用,而在...中使用“严格引用”

我不想扫描每个输出文件的所有数据,因为dump.all.lammpstrj它太大了,扫描将花费很长时间。

有什么方法可以使用已定义的变量作为文件句柄?

Kjetil S.

让您了解如何完成此操作。将文件句柄放入哈希(如果按数字索引,则可能为数组)。

use strict;
use warnings;
my %fh;                                                        #file handles
open $fh{$_}, '>', "Z_${_}_dump.all.lammpstrj.dat" for 1..100; #open 100 files
for(1..10000){                                    #write 10000 lines in 100 files
    my $random=int(1+rand(100));                  #pick random file handle
    print {$fh{$random}} "something $_\n";
}
close $fh{$_} for 1..100;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Perl文件句柄为零而不是变量

如何使用变量而不是文件来让任何命令写入?

如何使用变量而不是文件来输出此wc命令

如何使用动态文件句柄动态打开多个文件

文件系统访问 API:如何使用 postMessage 发送文件句柄?

Terraform,如何使用变量文件将变量传递给模块而不是重复调用

如何获取进程的文件句柄?

使用文件句柄 perl 排序

使用选择返回的文件句柄

如何传递文本而不是文件作为变量

使用属性文件而不是静态最终变量

如何在Python中使用PIL使用变量而不是路径打开图像文件?

函数句柄,用于在文件数据存储中使用多个输出和输入变量

如何区分套接字句柄和文件句柄

如何检查文件句柄是否仍指向文件

如何使用相同的旧文件句柄从文件中读取更新的数据

如何使用html上传文件而不是文件?

如何使用dplyr引用变量而不是列

如何为 :contains 使用变量而不是类?

如何使用不同的类和导入即时使用Python登录更改文件句柄

如何用承诺关闭文件句柄?

Python的tempfile.mkstemp()返回整数而不是文件句柄?

如何在Perl中将我的关键字与文件句柄一起使用?

如何在c程序中使用libprocps获取打开的文件描述符/句柄

如何使用grep从文本文件中找到所有Twitter句柄?

如何生成一个PDF格式的变量而不是文件?

如何将csv写入“变量”而不是文件?

在Bash脚本中使用变量输入而不是文件

是否可以通过gnu awk命令使用变量而不是文件?