2009年1月8日星期四

[PerlChina] Re: 重定向的问题

点错了出现了两遍。谢谢,我再实验下。

On Jan 8, 6:11 pm, Changying Li <lchangy...@gmail.com> wrote:
> 1. 不需要发两遍吧
> 2. 多看看File::Find文档,你的用法有误
>
> e280s <e280s4e...@gmail.com> writes:
> > #!/usr/bin/env perl
> > # filename: findfile.pl
>
> > use strict;
> > use File::Find;
>
> > # 1. variables
> > my @file_dirs = qw{/etc};
>
> > # 2. main
> > my @contents = find(\&wanted, @file_dirs);
>
> 这里的@contents你能得到啥东西了? find不能这样用,你应该将@contents这个数组
> 在wantted里操作,然后再print 出来。
> 比如
> my @contents;
> sub wanted {
> push @contets, $_;
>
>
>
>
>
> }
> > open MAIL, "> |mail -s xxx i\@myaddress.com" or die
> > "Open file error: $!";
> > print MAIL @contents;
> > close MAIL;
>
> > # 3. subroutines
> > # 3.1. get user name by uid
> > sub wanted {
> > my @file_stat = stat($File::Find::name);
> > next unless $File::Find::name =~ /^.+conf$/;
> > printf("FILE: %-30s\tSIZE: %-5s\tCHANGE: %-5s\tCREAT: %-5s\tOWNER:
> > %-5s\tGROUP: %-5s\n",
> > $File::Find::name, # filename
> > $file_stat[7], # file size
> > $file_stat[9], # last change
> > $file_stat[10], # last change
> > &get_user($file_stat[4]), # owner
> > &get_group($file_stat[5]), # owner
> > );
> > }
> > sub get_user {
> > my $uid = @_[0];
> > open FILE, "/etc/passwd" or die
> > "Open file error: $!";
> > foreach (<FILE>) {
> > next unless /^.*:.*:${uid}:.*:.*:.*:.*$/;
> > my @user_line = split /:/, $_;
> > return $user_line[0];
> > }
> > close(FILE);
> > }
> > # 3.2. get group name by gid
> > sub get_group {
> > my $gid = @_[0];
> > open FILE, "/etc/group" or die
> > "Open file error: $!";
> > foreach (<FILE>) {
> > next unless /^.*:.*:${gid}:.*$/;
> > my @user_line = split /:/, $_;
> > return $user_line[0];
> > }
> > close(FILE);
> > }
>
> > 程序写的很烂。我意思是:
> > 直接从find的输出内容中转到mail发送出去。上面这好象不行。
>
> > 另外perl中有没有好用的根据uid查用户名的函数?
>
> --
>
> Thanks & Regards
>
> Changying Li- Hide quoted text -
>
> - Show quoted text -
--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina 论坛"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---

没有评论: