Thread Mit if anweisung zur sub springen? (8 answers)
Opened by Gast at 2007-05-29 17:14

Gast Gast
 2007-05-29 17:14
#77051 #77051
Hallo ich habe 4 kleine skripte geschrieben, und möchte diese zusammen fügen. und eben mit den parameter aufrufen "update", "select","delete","update" ausfürhern.

wieso funktionieren die skripte nun nicht mehr????

hier meine Skript:
wenn ich das skript mir "perl compl.pl update"
aufrufe kommen folgen fehler wegen den variablen:

+++++++++
Scalar found where operator expected at compl.pl line 34, near "$cm$
  or"
       (Missing operator before    or?)
Bareword found where operator expected at compl.pl line 34, near "$
  or croak"
       (Missing operator before croak?)
Bareword found where operator expected at compl.pl line 45, near "$
  or croak"
       (Missing operator before croak?)
Global symbol "$cm" requires explicit package name at compl.pl line 33.
syntax error at compl.pl line 34, near "$cm$
  or "
Global symbol "$or" requires explicit package name at compl.pl line 34.
Global symbol "$or" requires explicit package name at compl.pl line 45.
syntax error at compl.pl line 45, near "$
  or croak "
Execution of compl.pl aborted due to compilation errors.
+++++++++++++++++

hier mein skript


Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/usr/bin/perl


use strict;
use warnings;

use Carp;
use DBI;


my $dbh = DBI->connect("dbi:Pg:dbname=raum;host=127.0.0.1;port=5432", "perl_db", "test",{ RaiseError => 0, AutoCommit => 0}) or croak $DBI::errstr;
print "\n Erfolgreich mit Datenbank verbunden \n \n";

if ($ARGV[0]=='update'){
       sub update;
}
elsif ($ARGV[0]=='insert'){
       sub insert;
}
elsif ($ARGV[0]=='delete'){
       sub delete;
}
elsif ($ARGV[0]=='select'){
       sub select;
}
else {
print "Falscher Parameter!";
}

#####UPDATE######

sub update {
my $cmd = 'UPDATE t_personen SET name= ? WHERE id=?; '; my $sth = $dbh->prepare_cached($cm$
  or croak "SQL prepare failed '$cmd': " . $dbh->errstr;

my $rc = $sth->execute($ARGV[1],$ARGV[2]);

$dbh->commit() or die "Failed to save modified data: " . $dbh->errstr;
}

##### delete#######
.
.
.
.

View full thread Mit if anweisung zur sub springen?