Schrift
[thread]7173[/thread]

Hilfe bei Perl Script



<< |< 1 2 >| >> 11 Einträge, 2 Seiten
Jill
 2005-07-30 13:19
#56825 #56825
User since
2005-07-30
2 Artikel
BenutzerIn
[default_avatar]
Hallo,

ich habe folgendes Problem:
Am Montag steht bei mir eine Prüfung an, in welcher neben JavaScript, VRML und HTML auch Perl gefragt sein wird.
Allerdings stell ich mich für Perl einfach zu dämlich an glaub ich...
Kann mir bitte Jemand erläutern was in etwa bei folgendem Perl Script ausgegeben wird? (Aufgabe aus vergangenen Klausuren)

&A();
sub B() {
        print $TextRef, "\n";
}
subA() {
        my $Text = "Beispieltext";
        $TextRef = $Text;
        &B();
}

Vielen lieben Dank im Voraus!! Jill
Ronnie
 2005-07-30 13:30
#56826 #56826
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
Eine Fehlermeldung aufgrund mehrerer Tippfehlers?! Das ist kein schöner Code, da in der Funktion B auf eine Variable zugegriffen wird die nicht an sie übergeben wird sondern im umgebenden Geltungsbereich erwartet wird.
renee
 2005-07-30 14:12
#56827 #56827
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Wenn Du zwischen dem "sub" und dem "A" noch ein Leerzeichen einfügst, dann wird "Beispieltext" ausgegeben(sonst gibt es nur Fehlermeldungen).

Warum??
Am Anfang ist $TextRef nicht gesetzt. Dann wird aber die Subroutine "A" aufgerufen (&A();). Dort wird eine Variable $Text deklariert und mit "Beispieltext" initialisiert. Dann wird $TextRef mit dem Wert von $Text (also "Beispieltext") gefüllt. Dann wird die Subroutine "B" aufgerufen, die dann $TextRef ausgibt.

Aber wie Ronnie schon sagte, ist das kein schöner Code und eigentlich gehören Lehrer/Profs bestraft, die solchen Code der Öffentlichkeit zugänglich machen ;)
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
mhybner
 2005-07-30 15:34
#56828 #56828
User since
2005-07-30
4 Artikel
BenutzerIn
[default_avatar]
probier mal mit use strict; dann sagt perl warum der code sch... ist:

Global symbol "$TextRef" requires explicit package name at
Global symbol "$TextRef" requires explicit package name at
Execution of test001.pl aborted due to compilation errors.

immer gut zum debuggen!

use strict;
&A();
sub B() {
print $TextRef, "\n";
}
sub A() {
my $Text = "Beispieltext";
$TextRef = $Text;
&B();
}
pq
 2005-07-30 15:45
#56829 #56829
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
Wiki:use strict
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
GwenDragon
 2005-07-30 16:11
#56830 #56830
User since
2005-01-17
14761 Artikel
Admin1
[Homepage]
user image
Es geht wohl darum ab zu fragen, was der Code MACHT!
Die Leute werden nicht in der Klausur danach geprüft, ob sie strukturiert programmieren können, sondern kapieren, was bestimmte Perl Konstrukte machen.

Der Code (wenn der Tippfehler bei subA korrigiert wird) ist gültiges Perl, ob mit -w oder use strict; oder use warnings; oder sonstwas.

Mal eine blöde Frage: Wer von euch hat denn and der Uni »schönes« Programmieren gelernt? Ich kenne Zeiten, da ging es darum den Leuten den Code bei zu bringen.
Das saubere Programmieren habe ich damals in meinen Zeiten aus mc und ct gelernt ;)
Ronnie
 2005-07-30 16:18
#56831 #56831
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
@Gwen: Yeah, autofahren kann man auch ohne Gurt lernen, aber es bleibt ein unschönes Gefühl dabei ;)
Jill
 2005-07-30 16:30
#56832 #56832
User since
2005-07-30
2 Artikel
BenutzerIn
[default_avatar]
Vielen lieben Dank für die prompten und zahlreichen Antworten.

Auf bald! Jill
esskar
 2005-07-30 16:35
#56833 #56833
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=GwenDragon,30.07.2005, 14:11]Mal eine blöde Frage: Wer von euch hat denn and der Uni »schönes« Programmieren gelernt? Ich kenne Zeiten, da ging es darum den Leuten den Code bei zu bringen.
Das saubere Programmieren habe ich damals in meinen Zeiten aus mc und ct gelernt ;)[/quote]
ich!
renee
 2005-07-30 17:08
#56834 #56834
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Mich stört es auch in vielen Perl-Büchern, dass null auf strict etc. eingegangen wird. Es geht ja nicht nur um "schönes" Programmieren, sondern auch um "richtiges" Programmieren. Wenn man gleich von Anfang an lernt, bestimmte Sachen zu berücksichtigen, ist es irgendwann total selbstverständlich. Wenn man aber im Unterricht/ in der Vorlesung immer nur "Kraut und Rüben" zu sehen bekommt, gewöhnt man sich sowas auch an und wundert sich später, warum es in der "freien (Programmierer-)Wildbahn" nicht klappt.
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< |< 1 2 >| >> 11 Einträge, 2 Seiten



View all threads created 2005-07-30 13:19.