[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