http://www.perlmonks.org?node_id=11149579


in reply to Re^5: bug or curly bracket hell?
in thread bug or curly bracket hell?

Well I guess that means I will have to rewrite it all if I wanna use strict, thank you for the guidance

Replies are listed 'Best First'.
Re^7: bug or curly bracket hell?
by Anonymous Monk on Jan 14, 2023 at 01:00 UTC
    To fix this line, just remove the "my" before "$VARDB_database":
    if ( ($line =~ /^VARDB_database/) && ($CLIDB_database < 1) ) {$VARDB_database = $line; my $VARDB_database =~ s/.*=//gi;}
    Using strict and warnings will save you from bugs like the above which fail silently:

    use strict; use warnings; #path to astguiclient configuration file: my $PATHconf = '/etc/astguiclient.conf'; my ( $PATHlogs, $VARserver_ip, $VARDB_server, $VARDB_database, $VARDB_user, $VARDB_pass, $VARDB_custom_user, $VARDB_custom_pass, $VARDB_port); # Now perl knows the variables you will use, so if there is # a typo later like "$PATHlog" instead of "$PATHlogs" then # perl will tell you how to fix it, instead of just failing # silently (like crappy PHP and Python :^) open(conf, "$PATHconf") || die "can't open $PATHconf: $!\n"; my @conf = <conf>; close(conf); my $i=0; foreach(@conf){ my $line = $conf[$i];