歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> PERL編程

Perl模塊 File::Tail::Multi特定屬性用法

現象:

打算利用Perl的模塊File::Tail::Multi實現對多個文件的實時處理,可惜程序可以啟動,但就是不處理文件內容,急煞我也

用法:

  1. use File::Tail::Multi;
  2. my @_LIST_OF_FILE_PATHS = ("/path/to/one/file", "/path/to/another/file");
  3. my $rptTail = File::Tail::Multi->new(
  4. Function => \&_read_line,
  5. LastRun_File => "/path/to/app.lastrun",
  6. Files => @_LIST_OF_FILE_PATHS
  7. );
  8. sub _read_line {
  9. my $lines_ref = shift;
  10. foreach ( @{$lines_ref} ) {
  11. chomp;
  12. next if $_ =~ //;
  13. #go play, here's the line
  14. }
  15. }

要點:

Perl模塊File::Tail::Multi中的屬性LastRun_File指示的是一個文件,此文件記錄被tail的文件最後一次的讀取狀態,上面指的就是“/path/to/app.lastrun”,如果此文件不存在,則Tail操作就不能完成,即使進程啟動正常

解決方法:

因為LastRun_File所指示的文件不會自動生成,故需手動創建:

  1. touch /path/to/app.lastrun

再啟動程序,文件開始被Tail處理,搞定!

Copyright © Linux教程網 All Rights Reserved