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