W dniu 22 marca 2012 18:59 użytkownik Tomasz Chiliński <tomasz.chilinski@chilan.com> napisał:
Ciekawe czy w wyrażeniu regularnym dopasowującym się do potencjalnej nazwy ulicy
zawarty jest znak "-" ;-)

oj to nie jest kwestia znaku "-". Dodałem printa przed wykonaniem zapytań do bazy i zmienne są poprawne. kwestia jest w zapytaniu/zwracanych danych.
"print "printuje \$city= $city, \$street= $street \$house= $house \n";
        # find location_street and/or location_city IDs
        if ($street && $city) {
                $street_get->execute($street, $street, "$city%");
                my $srows = $street_get->fetchall_hashref('id');
                if (scalar(keys %$srows) == 1) {
                        foreach my $srow (keys %$srows) {
                                $street_id = $srows->{$srow}->{'id'};
                                $city_id = $srows->{$srow}->{'cityid'};
                        }
                }
                else {
                        $city_get->execute($street);
                        if (my $srow = $city_get->fetchrow_hashref()) {
                                $city_id = $srow->{'id'};
                                $orig_location =~ s/$city, //;
                        }
                }
        }
        elsif ($city) {
                $city_get->execute($city);
                if (my $crow = $city_get->fetchrow_hashref()) {
                        $city_id = $crow->{'id'};
                }
        }
        # update node location
        if ($street_id || $city_id) {
                print "found\n" if not $quiet;
                $update->execute($city_id, $street_id, $house, $flat, $orig_location, $row->{'id'});
        }
        else {
                print "not found\n" if not $quiet;
        }
}
"

root@testsql:/var/www/lms/bin# ./lms-teryt -m|egrep -i "^ap\ .*$|^br\ .*$"
AP Młyn 1N (1440) Miasto, al. XX-lecia 34a: printuje $city= Miasto, $street= XX-lecia $house= 34a


--
Pozdrawiam
Marcin / nicraM