Variable gesetzt trotz if
Variable gesetzt trotz if
am 27.04.2007 13:33:06 von Heiko Rompel
Moin,
my $test = 'false';
sub heiko{
If (a eq b){
..
$test = 'true'
...
}
}
$test wird auch dann auf 'true' gesetzt wenn die IF-Bedingung nicht greift.
Der Rest im IF-Bereich verhält sich normal.
Aber warum $test geändert?
MfG
Heiko
Re: Variable gesetzt trotz if
am 27.04.2007 13:44:25 von Frank Seitz
Heiko Rompel wrote:
> my $test = 'false';
>
> sub heiko{
> If (a eq b){
> ..
> $test = 'true'
> ...
> }
> }
>
> $test wird auch dann auf 'true' gesetzt wenn die IF-Bedingung nicht greift.
> Der Rest im IF-Bereich verhält sich normal.
>
> Aber warum $test geändert?
Das ist kein lauffähiger Perl-Code.
Grüße
Frank
--
Dipl.-Inform. Frank Seitz; http://www.fseitz.de/
Anwendungen für Ihr Internet und Intranet
Tel: 04103/180301; Fax: -02; Industriestr. 31, 22880 Wedel
Re: Variable gesetzt trotz if
am 27.04.2007 13:57:01 von Thomas Rudy
Heiko Rompel schrieb unter anderem:
> my $test = 'false';
>
> sub heiko{
> If (a eq b){
> ..
> $test = 'true'
> ...
> }
> }
Hallo Heiko
Etwas schwer verständlich was Du meinen könntest, da etwas fehlt was Du
vergleichen willst.
z.Bsp: heiko('c','d');
Vieleicht bringt Dich die Investition von 2 Dollars weiter, einen vor
dem a den anderen vor dem b.
SCNR
Tschööö Thomas
Re: Variable gesetzt trotz if
am 27.04.2007 14:13:34 von Mirco Wahab
Heiko Rompel wrote:
> my $test = 'false';
>
> sub heiko{
> If (a eq b){
> ..
> $test = 'true'
> ...
> }
> }
> $test wird auch dann auf 'true' gesetzt wenn die IF-Bedingung nicht greift.
> Der Rest im IF-Bereich verhält sich normal.
>
> Aber warum $test geändert?
Du solltest es mal mit Perl versuchen,
...
sub a { 'Heiko' }
sub b { 'Rompel' }
my $test = 'false';
sub heiko {
if( a eq b ){
$test = 'true'
}
}
print $test;
heiko;
print $test
...
Und
use strict;
use warnings;
nicht vergessen!
M.
Re: Variable gesetzt trotz if
am 27.04.2007 19:18:10 von Ferry Bolhar
Heiko Rompel:
> my $test = 'false';
>
> sub heiko{
> If (a eq b){
Das ist kein Perl-Code - "If" gehört mit kleinem "i", und soferne du
die beiden Variablen "a" und "b" vergleichen willst (wobei ich jetzt
mal annehme, dass es sich dabei um Skalare handelt), musst du
ihren Namen ein "$" voransetzen (wie bei der "$test" Variable).
Außerdem würde ich vorschlagen, dass du an den Beginn deines
Codes ein
use warnings;
use strict;
setzt und dann mal siehst, was da so an Meldungen erscheint, wenn
du den Code laufen läßt - und es würde mich sehr wundern, wenn
nichts erscheinen sollte...
LG, Ferry
--
Ing Ferry Bolhar
Magistrat der Stadt Wien - MA 14
A-1010 Wien
E-Mail: bol@adv.magwien.gv.at
Re: Variable gesetzt trotz if
am 27.04.2007 19:35:55 von Heiko Rompel
Okay, nachdem mir alle nur mitteilen das mein Code kein Perl sei
hier ein Auszug aus dem Code:
$pathtotemp = "/home/"
my $pruefung = 'false'; # Globale Definition der Variablen
sub user_write {
my $dateiname = $simple_form{'file'};
open(DAT, "<$pathtotemp$dateiname") || die "can't open
$pathtotemp$dateiname: $!\n";
flock (DAT,2);
$zahlen = ;
close (DAT);
unlink ("$pathtotemp$dateiname"); # Tempdatei wieder löschen
if ($zahlen eq $simple_form{'kontrolle'}) {
$pruefung = 'true';
# Rest gelöscht
Auch $zahlen <> $simple_form{'kontrolle'} wird $pruefung auf 'true' gesetzt.
Warum?
MfG
Heiko
Re: Variable gesetzt trotz if
am 27.04.2007 19:59:42 von unknown
Post removed (X-No-Archive: yes)
Re: Variable gesetzt trotz if
am 27.04.2007 21:05:40 von Thomas Rudy
Heiko Rompel schrieb unter anderem:
> if ($zahlen eq $simple_form{'kontrolle'}) {
> $pruefung = 'true';
Hallo Heiko,
wenn Du nicht dahinter kommst, schau halt nach warum das so ist.
z.Bsp durch einfügen von:
die('('.$zahlen.')('.$simple_form{'kontrolle'}.') eq:('.($zahlen eq
$simple_form{'kontrolle'}).') ne:('.($zahlen ne
$simple_form{'kontrolle'}).')');
unter die "if" Zeile.
Sorry für die PM, ich habe den falscher Knopf erwischt.
Tschööö Thomas
Re: Variable gesetzt trotz if
am 27.04.2007 21:32:01 von Heiko Rompel
DANKE.
"Thomas Rudy" schrieb:
> z.Bsp durch einfügen von:
> die('('.$zahlen.')('.$simple_form{'kontrolle'}.') eq:('.($zahlen eq
> $simple_form{'kontrolle'}).') ne:('.($zahlen ne
> $simple_form{'kontrolle'}).')');
Das brachte zwar nicht direkt den Erfolg, aber als ich das übertrug,
schrie mein Fehler mich an.
Ich hatte an der Stelle an der ich $pruefung überprüfe ein '=' anstatt 'eq'
eingesetzt.
> Sorry für die PM, ich habe den falscher Knopf erwischt.
PM? - Hier kam keine an.
MfG
Heiko
Re: Variable gesetzt trotz if
am 30.04.2007 10:34:30 von Ferry Bolhar
Heiko Rompel:
> Das brachte zwar nicht direkt den Erfolg, aber als ich das übertrug,
> schrie mein Fehler mich an.
> Ich hatte an der Stelle an der ich $pruefung überprüfe ein '=' anstatt
'eq'
> eingesetzt.
Diese Stelle hast du aber nicht gepostet.
LG, Ferry
--
Ing Ferry Bolhar
Magistrat der Stadt Wien - MA 14
A-1010 Wien
E-Mail: bol@adv.magwien.gv.at