Font
[thread]7517[/thread]

Interpreter Shell?



<< |< 1 2 >| >> 18 entries, 2 pages
ello
 2005-11-30 21:20
#60659 #60659
User since
2005-11-30
10 articles
BenutzerIn
[default_avatar]
Hallo,

gibt's bei Perl eigentlich auch eine Interpreter Shell zum schnellen testen zwischendurch? Sowas wie bei python durch den Aufruf von python oder die irb bei Ruby.
Oder ist sowas bei Perl wegen der Art der Ausführung nicht möglich?

Gruß
ello
Relais
 2005-11-30 21:35
#60660 #60660
User since
2003-08-06
2243 articles
ModeratorIn
[Homepage] [default_avatar]
Heißt bei Perl "perl".

Code: (dl )
1
2
3
perl -wle ' print 2*7 ' # Unix

perl -wle " print 2*7 " # WinDos
Erst denken, dann posten --
26. Deutscher Perl- u. Raku -Workshop 15. bis 17.04.2024 in Frankfurt/M.

Winter is Coming
Ronnie
 2005-11-30 21:53
#60661 #60661
User since
2003-08-14
2022 articles
BenutzerIn
[default_avatar]
@relais: Das ist nicht ganz das selbe, da die Shells von python oder ruby evaluierte Ausdrücke und Variablen weiter verwenden - will sagen, wenn du einen perl-Ausdruck im Terminal wie angegeben auswerten lässt stehen dir im nächsten Lauf die Variablen des vorherigen Laufs nicht mehr zur Verfügung. Beispiel:
Code: (dl )
1
2
perl -wle ' my $x = 2*7 '
perl -wle ' print $x '

Dies kann nicht funktionieren - ginge aber in einer der Shells von ruby oder python.\n\n

<!--EDIT|Ronnie|1133380591-->
J-jayz-Z
 2005-11-30 22:07
#60662 #60662
User since
2005-04-13
625 articles
BenutzerIn
[Homepage] [default_avatar]
Man kann aber nur durch die Eingabe von perl dann seinen Quellcode einfach so eingeben und ausführen und muss ^Z drücken zum ausführen
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="5065726c2d436f6d6d756e697479"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'

http://perl-tutor.de
ello
 2005-11-30 22:26
#60663 #60663
User since
2005-11-30
10 articles
BenutzerIn
[default_avatar]
Ctrl+Z bringt mir aber leider nichts, da die Kombination schon von meiner Shell belegt ist. (Prozess in den Hintergrund setzen)
Ronnie
 2005-11-30 23:03
#60664 #60664
User since
2003-08-14
2022 articles
BenutzerIn
[default_avatar]
[quote=ello,30.11.2005, 21:26]Ctrl+Z bringt mir aber leider nichts, da die Kombination schon von meiner Shell belegt ist. (Prozess in den Hintergrund setzen)[/quote]
Ctrl + D, unter Linux
ello
 2005-12-01 00:16
#60665 #60665
User since
2005-11-30
10 articles
BenutzerIn
[default_avatar]
Tatsächlich...
Aber an die Art von python bzw. irb kommt's hald nich ran. Is ja auch nur für kleine Tests zwischendurch. ^^

Im Portagetree bin ich grad auf folgendes gestoßen:
* app-shells/psh
Latest version available: 1.8
Latest version installed: 1.8
Unstable version: 1.8-r1
Use Flags (stable): -
Size of downloaded files: 117 kB
Homepage: http://www.focusresearch.com/gregor/psh/
Description: Combines the interactive nature of a Unix shell with the power of Perl

Das verträgt sich zwar nicht mit dem Prompt der Z-Shell aber aus der Bash gestartet kommt es dem was ich Suche sehr nah.
ptk
 2005-12-01 02:52
#60666 #60666
User since
2003-11-28
3645 articles
ModeratorIn
[default_avatar]
Oder auch einfach:
Code: (dl )
perl -e 'while(<>) { print eval, "\n" }'
pKai
 2005-12-01 17:14
#60667 #60667
User since
2005-02-18
357 articles
BenutzerIn
[default_avatar]
Ich hab für sowas (in der DOS-Box) 'nen Batch rumfliegen, der ähnliches macht:
Code: (dl )
perl -n -p -e "$_ = eval($_) . qq(\n); $_ .= qq(::$@\n) if $@"

[me=pKai] scratches head[/me]
Warum sprech ich da eigentlich die $@ mit Namespace an??

Edit: "::$@" ne $::@ (wenn es das denn geben würde; siehe Relais' Antwort weiter unten) :D\n\n

<!--EDIT|pKai|1133531547-->
I sense a soul in search of answers.
Dubu
 2005-12-01 23:47
#60668 #60668
User since
2003-08-04
2145 articles
ModeratorIn + EditorIn

user image
Naja, beides erlaubt keine mehrzeiligen Statements (Bedingungen, Schleifen) und liefert auch ordentlichen Editiermoeglichkeiten (Readline) mit History. Da ist die Python-Shell schon eine Groessenordnung besser, das muss man zugeben. (Trotzdem lasse ich mir meine Einrueckung nicht vorschreiben ...)
<< |< 1 2 >| >> 18 entries, 2 pages



View all threads created 2005-11-30 21:20.