Portál AbcLinuxu, 10. května 2025 05:54
open(DATA, "find $adresar |")
tento kod funguje a do DATA se ulozi vystup funkce "find"
ale kdyz pridam:
open(DATA, "find $adresar | grep reg_vyraz |")
tak mi to nenajde nic. Regulární výraz je určitě správně, protože normalně v konzoli to funguje.
Děkuji předem za každou radu.
system
my $outputCmd = system("find $adresar | grep reg_vyraz");Mimo to cele je to slozite napsane:
system
je "v zakladu" Jinak http://search.cpan.org/~dom/perl-5.12.5/pod/perlfunc.pod
print `find $adresar | grep reg_vyraz`;Pokud bude fungovat, tak bych hledal příčinu v regulárním výrazu, respektive jeho pozměnění v perlu před vykonáním.
open(DATA,"find /etc | grep host|");Funguje, takze problem bude nekde jinde. Muzes uvest cely kod ?
No fuj, takhle prasit v Perlu, to je teda hnus…
A jedna filosofická: co k tomu proboha lidi vede?
Find::File:
#!/usr/bin/perl use warnings; use strict; use File::Find; find (\&open_routine, "/etc/"); sub open_routine { return 1 if (! /^hosts$/); print "DEBUG: got file: $_\n"; open (HFD, '<' . $_) or die ("ERROR: unable to open $_, $!"); print $_ foreach (<HFD>); close (HFD); }Hladata
hosts
v /etc
. Ak najde, otvori a vypise jeho obsah.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.