Chinaunix

标题: 打印出:智能匹配结果 [打印本页]

作者: spritesu    时间: 2013-07-29 13:08
标题: 打印出:智能匹配结果
请问大神们:
小骆驼:智能匹配与given-when结构的例子

use 5.010;
if ( @array ~~ %hash ) { ... }

@array中至少一个元素匹配 %hash的键
我想打印出来匹配项 应该怎么办? 匹配项存在什么特定数组里面了吗?我要打印什么呢?是$_吗?
如果我想打印匹配项中 @array中的元素并显示第几个元素 和 %hash中的键并显示相应的值。我应该如何写脚本呢?

望高手赐教

作者: 只是一个红薯    时间: 2013-07-29 15:16
  1. #!/usr/bin/perl
  2. use 5.016;
  3. use strict;
  4. use warnings;
  5. my @a=qw(a b c d e f g h i);
  6. my %h=(
  7.     cc=>1,
  8.     vv=>2,
  9.     bb=>3,
  10.     d=>4,
  11.     ad=>5,
  12.     f=>6,
  13. );
  14. printf "%5s %8s %5s",'第几个元素','匹配项','值'."\n";
  15. foreach my $i(0..$#a){
  16.     if(exists $h{$a[$i]}){
  17.         printf "%4s %10s %9s",$i+1,$a[$i],$h{$a[$i]}."\n";
  18.     }
  19. }
复制代码

作者: spritesu    时间: 2013-07-30 09:53
本帖最后由 spritesu 于 2013-07-30 10:11 编辑

嘿嘿谢谢你啊 不过没咋看懂 菜鸟级的
不过我试了一下 果真好用啊!!!
回复 2# 只是一个红薯


   
作者: spritesu    时间: 2013-07-30 10:44
只是一个红薯 发表于 2013-07-29 15:16

这个"%5s %8s %5s"是什么作用呢?
我看小骆驼上说  %s能限制字符串长度 是这作用吗、
字符串长度为什么是5 8 5 呢
作者: 只是一个红薯    时间: 2013-07-30 10:46
自己看输出调的....回复 4# spritesu


   
作者: rubyish    时间: 2013-07-30 23:56
谢谢,学习了




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2