免费注册 查看新帖 |

Chinaunix

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

如何在tainted mode下,做到自动format调整??急 [复制链接]

rainheart 该用户已被删除
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-06-09 10:29 |只看该作者 |倒序浏览
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
2 [报告]
发表于 2003-06-09 16:24 |只看该作者

如何在tainted mode下,做到自动format调整??急

open(MYFILE,">;$file_in";
其他不變...
會出錯的原因是因為你沒有把hash裡面的數值正確的抓出來...
所以perl會告訴你試圖存取為initial的變量..

我debug過你的程序後...如下:

  1. !/usr/bin/perl -Tw
  2. use strict;
  3. my $file = "./aaa.dat";
  4. my $file1 = "./aaa1.dat";
  5. my %hash =();

  6. open(FF,"$file");
  7. while((<FF>;)){
  8.   my $data=$_;
  9.   next if $data=~/^\#/;
  10.   chomp($data);
  11.   $data=~m!\s*(\w+)\s*\|\s*(\d+)\s*\|\s*(\w+)\s*!;
  12.   my $name = $1;
  13.   my $age = $2;
  14.   my $place = $3;
  15.   ${hash{$name}}{"age"} = $age;
  16.   ${hash{$name}}{"place"} = $place;
  17. }
  18. close(FF);

  19. &write_file($file1,\%hash);

  20. sub write_file {
  21.   my $file_in = shift;;
  22.   my $hash = shift;
  23.   my %hash = %{$hash};
  24.   my($name_in,$age_in,$place_in,$format,$key);
  25.   my($name_length,$age_length,$place_length);
  26.   open(FF,">;$file_in");
  27.   for my $key (keys %hash){
  28.     $name_in = $key;
  29.     $age_in = ${$hash{$name_in}}{'age'};
  30.     $place_in = ${$hash{$name_in}}{'place'};
  31.     $name_length=length($name_in);
  32.     $age_length=length($age_in);
  33.     $place_length=length($place_in);
  34.    $format = "format FF=\n"
  35.    . '@' .'<' x $name_length . '|'
  36.    . '@' . '<' x $age_length . '|'
  37.    . '@' . '<' x $place_length . "\n"
  38.    . '$name_in' . ","
  39.    . '$age_in' . ","
  40.    . '$place_in' . "\n"
  41.    . ".\n";
  42.    print "$format\n";
  43.    eval($format);
  44.    write(FF);
  45.   }
  46. }
复制代码
rainheart 该用户已被删除
3 [报告]
发表于 2003-06-09 19:06 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
4 [报告]
发表于 2003-06-10 08:23 |只看该作者

如何在tainted mode下,做到自动format调整??急

my %hash;
%hash = %{&read_file()};
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP