免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3239 | 回复: 16
打印 上一主题 下一主题

open中插入变量改正 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-10-14 00:57 |只看该作者 |倒序浏览
  1. open("NAME1","$filename1");
  2. my $newfile="new"."$filename1";
  3. open ("NEWFILE",">","$newfile");
复制代码
为什么总是显示错误,其中我验证过第一个open没有错误,错误在第二个open,总是不能建立新的文件,而我改为$newfile=“new'."world",就可行。不知为什么,求解~~

论坛徽章:
3
技术图书徽章
日期:2013-12-14 13:31:0615-16赛季CBA联赛之八一
日期:2016-03-10 18:23:4615-16赛季CBA联赛之青岛
日期:2016-03-19 11:36:04
2 [报告]
发表于 2011-10-14 01:26 |只看该作者
回复 1# jiujiujiu338
   测试没有问题

    my $filename1="aaa.txt";
    有错误加上or die试试找到错误

论坛徽章:
0
3 [报告]
发表于 2011-10-14 07:50 |只看该作者
问题是这样的,
  1. #!/urs/bin/perl
  2. use strict;
  3. use warnings;

  4. open("NAME","name.txt");
  5. my %names;
  6. while(<NAME>){
  7.         chomp;
  8.         my @name=split/\s+/;
  9.         $names{$name[1]}=$name[0];
  10. }
  11. close NAME;
  12. foreach my $key(sort(keys %names)){
  13.         Result ($key,$names{$key});
  14. }


  15. sub Result{
  16. my ($key,$value)=@_;
  17. my $new_name="new"."$key";
  18. open("NAME1","$key");
  19. open("NEWNAME",">","$new_name")or die;

  20. while (<NAME1>){
  21.         print NEWNAME "$_";
  22. }
  23. }
复制代码
这样就可以建立新文件,但是我把
my $new_name="new"."$key";
变为
my $new_name="new"."$value";
时就不能建立新文件,想了好久也没想明白,不知自己把问题说清楚了没有,如果有明白的还请帮忙,多谢~

论坛徽章:
0
4 [报告]
发表于 2011-10-14 07:52 |只看该作者
回复 3# jiujiujiu338


    补充:
其中name.txt中的内容为
01wong.txt 01kan.txt
02wong.txt 02kan.txt


多谢~

论坛徽章:
0
5 [报告]
发表于 2011-10-14 09:39 |只看该作者
回复 4# jiujiujiu338


    大家帮忙看看吧,多谢~~这个问题我想了一晚上了,也想不明白~~~~~(>_<)~~~~

论坛徽章:
0
6 [报告]
发表于 2011-10-14 09:53 |只看该作者
你说的两个问题都无法重现
  1. #!/usr/local/bin/perl
  2. use strict;

  3. open("NAME","name.txt");
  4. my %names;
  5. while(<NAME>){
  6.         chomp;
  7.         my @name=split/\s+/;
  8.         $names{$name[1]}=$name[0];
  9. }
  10. close NAME;
  11. foreach my $key(sort(keys %names)){
  12.         Result ($key,$names{$key});
  13. }


  14. sub Result{
  15. my ($key,$value)=@_;
  16. print "$key,$value\n";
  17. my $new_name="new"."$key";
  18. open("NAME1","$key");
  19. open("NEWNAME",">","$new_name")or die;

  20. while (<NAME1>){
  21.         print NEWNAME "$_";
  22. }
  23. my $new_name="new"."$value";
  24. open("NAME1","$value");
  25. open("NEWNAME",">","$new_name")or die;

  26. while (<NAME1>){
  27.         print NEWNAME "$_";
  28. }
  29. }
复制代码

论坛徽章:
0
7 [报告]
发表于 2011-10-14 09:55 |只看该作者
上面贴的是你自己贴的代码,建文件没有出错,写内容也没有出错。
要不把报错内容贴出来吧。

论坛徽章:
0
8 [报告]
发表于 2011-10-14 10:00 |只看该作者
回复 7# herer


    对,上边程序没有错,但是当我把程序中的
my $new_name="new"."$key";
改为
my $new_name="new"."$value";
就出错了,就不能建立新的文件。Use of uninitialized value $value in string at。。。

论坛徽章:
0
9 [报告]
发表于 2011-10-14 10:02 |只看该作者
回复 8# jiujiujiu338
我也改成$value也没错的呀。 同奇怪你为什么运行不过。

论坛徽章:
0
10 [报告]
发表于 2011-10-14 10:07 |只看该作者
回复 9# leve1031


    奇了怪了,我怎么还是不行,从昨晚就不行,尽早还是不行,why,我要疯了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP