[Warszawa-pm] Dlaczego jedno działa a drugie nie ?

Waldemar Biernacki wb w sao.pl
Wto, 20 Kwi 2010, 10:18:20 PDT


Przede wszystkim dziękuję! Niżej sa odpowiedzi na pytania.

Pytanie o eval spowodowało, że zacząłem się przyglądać procedurkom i chyba 
znalazłem. Istota leży w tym, w jaki sposób uruchamiany jest mój program. Jest 
to aplikacja GUI. I tu jest istota; jeśli startuję wg:

perl seal.pl

to jest OK i obie komendy działają, natomiast gdy staruję 

wperl seal.pl

to działa tylko ta z odrotnym apostrofem. Prosze spróbować z tym skryptem 
(eval nie ma z tym nic wspólnego):

################################
# test.pl
################################

my $return1 = `print /D:\\\\192.168.1.103\\HPLJ6 tmp\\U1.pcl`;
my $return2 = system ( "print /D:\\\\192.168.1.103\\HPLJ6 tmp\\U1.pcl" );

# end test.pl
################################

jeśli damy perl test.pl , to obie komendy zadzaiałają, gdy zaś
wperl.pl to tylko ta z apostrofami. 

Może potrzebna jest jakaś manipulacja nad strumieniami STDOUT, STDERR i czym 
tam jeszcze? Ale to mi chyba i tak nic nie da, gdyż liczyłem, na unikatową 
wersję funkcji system, która w Windows może byc wywołana w postaci:

system ( 1, 'print ...' );

co powoduje oderwanie procesu drukowania od programu głównego. 

Dziękuję!

wb.






Dnia wtorek 20 kwiecień 2010 o 10:54:03 Piotr Fusik napisał(a):
> Cześć,
> 
> Dnia 2010-04-20 10:45 Waldemar Biernacki napisał(a):
> >Może pomożecie?
> >
> >W Windows XP odpalam metodą eval dwa pliki. Jeden zawiera wiersz 1. a
> > drugi wiersz nr 2:
> >
> >1. $return = system ( "print /D:$printer tmp\\$file" );
> >
> >2. $return = `print /D:$printer tmp\\$file 2>&1`;
> >
> >plik z wierszerm drugim (z odwrotnymi apostrofami) działa a ten pierwszy
> > (z komendą system) nie. Może ktoś mi wyjaśnić o co chodzi?
> 
> Gdzie tu "metoda eval"?

Mam program/ skrypt główny, w którym klikam na klawisz F9 i uruchamia się 
procedura:

my @result = eval (
 "require sealWin;\n".sealFN::read_file( $print_generation_file )
);
te dwie linijki są ze skryptu $print_generation_file


> 
> Co dokładnie rozumiesz przez "działa" / "nie działa"?
jedna daje wydruk druga nie.

> 
> Czy możesz pokazać cały program?

Cały program liczy circa 3600 linii w skrypcie głównym + 8500 linii w kilku 
plikach - modułach. 

> 
> Jakiego dokładnie perla używasz?

This is perl, v5.10.0 built for MSWin32-x86-multi-thread
(with 5 registered patches, see perl -V for more detail)

Copyright 1987-2007, Larry Wall

Binary build 1004 [287188] provided by ActiveState http://www.ActiveState.com
Built Sep  3 2008 13:16:37


> 
> Pozdrawiam,
> Piotr
> _______________________________________________
> Warszawa-pm mailing list
> Warszawa-pm w pm.org
> http://mail.pm.org/mailman/listinfo/warszawa-pm
> 


Więcej informacji o liście Warszawa-pm