Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]8442[/thread]

too many arguements



<< |< 1 2 >| >> 11 Einträge, 2 Seiten
fraggs
 2006-10-23 12:32
#71072 #71072
User since
2006-09-11
179 Artikel
BenutzerIn
[Homepage] [default_avatar]
halloechen alle zusammen hoffe es geht gut.

hab einen error
Quote
Too many arguments for main::GetDocu at z:\tla\Scripts\qsstat\qsstatistic4.pl line 1029, near "])"
Execution of z:\tla\Scripts\qsstat\qsstatistic4.pl aborted due to compilation errors.


und der haengt mit diesem code zusammen

Code: (dl )
1
2
3
4
5
6
7
8
    foreach(@PrjList2)
{
if($_ ne " ")
{
GetDocu($_, $PrjList1[1]); ####line 1029
}
$i++;
}


frage ist was ist falsch und wie fixe ich es ? wenn noch anderer code benoetigt wird kann ich tun ist inzwischen etwas lang

danke
mmm twix
nepos
 2006-10-23 12:38
#71073 #71073
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Woher kommt die Funktion GetDocu? Wie ist die deklariert?
fraggs
 2006-10-23 12:52
#71074 #71074
User since
2006-09-11
179 Artikel
BenutzerIn
[Homepage] [default_avatar]
die getdoku ist ne seperate subroutine ich poste sie einfach mal

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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
{
    my $project=shift;
    my $BasePrj=shift;
    
    my $PreProject="";
    my $Pos;
    my @hlp;
    my @h;
    my @BaseFolders;
    my @CurFolders;
    my $CurFol;
    my @NewTasks;
    my ($i, $j);
    my @Docu1;
    my @Purpose_;
    my $Task_;
    my $Platform_;

print    "\n\n";
    $PreProject = $project;
    while(($BasePrj ne $PreProject) && ($PreProject ne "") && ($project ne "") )
    {
#print $BasePrj."  ------ ".$PreProject."\n";
        if(!($PreProject =~ /:project:/))
        {
            $PreProject .="";
        }
        $qst = "$ccm query /u \"is_predecessor_of('$PreProject')\"";
print     $qst."\n";
        @_ = qx($qst);
        if($_[0] eq "")
        {
            $PreProject = "";
        }
        foreach(@_)
        {
            @hlp = split(/ /,$_);            
            $PreProject = $hlp[0];
            if($BasePrj eq $PreProject)
            {
               
 last;
            }
#print     $hlp[0]."\n";
            $qst = "$ccm rp /u /sh folders $hlp[0]";
print     $qst."\n";
            @h = qx($qst);
            foreach(@h)
            {
               
 @hlp = split(/ /,$_);
               
 @hlp  = split(/:/,$hlp[1]);
#print     "p--- ".$hlp[0]."\n";
               
 push(@CurFolders,$hlp[0]);            
            }
        }
    }

    $qst = "$ccm rp /u /sh folders $project";
print     $qst."\n";
    @h = qx($qst);
    foreach(@h)
    {
        @hlp = split(/ /,$_);
        @hlp  = split(/:/,$hlp[1]);
#print     "c--- ".$hlp[0]."\n";
        foreach(@CurFolders)
        {
            if($_ eq $hlp[0])
            {
               
 $hlp[0]=" ";
            }
        }
        if($hlp[0] ne " ")
        {
            push(@CurFolders,$hlp[0]);            
        }
    }    

    $qst = "$ccm rp /u /sh folders $BasePrj";
print     $qst."\n";
    @h = qx($qst);
    foreach(@h)
    {
        @hlp = split(/ /,$_);
        @hlp  = split(/:/,$hlp[1]);
#print     "c--- ".$hlp[0]."\n";
        foreach(@CurFolders)
        {
            if($_ eq $hlp[0])
            {
               
 $hlp[0]=" ";
            }
        }
        if($hlp[0] ne " ")
        {
            push(@BaseFolders,$hlp[0]);            
        }
    }    

    foreach(@BaseFolders)
    {
#print $_."\n";    
        $CurFol=$_;
        foreach(@CurFolders)
        {
            $qst = "$ccm folder /u /comp $_ /not $CurFol ";
print     $qst."\n";
            @_ = qx($qst);
            foreach(@_)
            {
               
 @hlp = split(/ /,$_);
               
 @hlp  = split(/:/,$hlp[1]);
#print     "--- ".$hlp[0]."\n";
               
 foreach(@NewTasks)
               
 {
               
     if($_ eq $hlp[0])
               
     {
               
         $hlp[0]=" ";
               
     }
               
 }
               
 if($hlp[0] ne " ")
               
 {
               
     push(@NewTasks,$hlp[0]);                    
               
 }
            }
        }
    }

    $i=0;
    foreach(@NewTasks)
    {
        $qst = "$ccm task /show info $_";
print     $qst."\n";
#        system($qrystr);
        @_ = qx($qst);
        $j=0;
        @Docu1="";
        foreach(@_)
        {
            push(@Docu1, $_);
            $DocArray[$i][$j] = $_;
            $j++;
        }
        @Purpose_=GetPurpose(@Docu1);
        $Platform_=GetPlatform(@Docu1);
        $Task_ = $_;
        foreach(@Purpose_)
        {
#print     $_."\n";    
            push(@Docu,"\n\n*****************************************************\n");
            push(@Docu,"-New Task Purpose-MyTask: ".$Task_."\n-New Task Purpose-");
            push (@Docu,"Purpose: ".$_."\n");
            push(@Docu,"-New Task Purpose-");        
            push (@Docu,"Project: ".$project."\n");
            push(@Docu,"-New Task Purpose-");        
            push (@Docu,"Platform: ".$Platform_."\n");
            push(@Docu,"-New Task Purpose-");        
            foreach(@Docu1)
            {
               
 push(@Docu, $_);            
            }
        }
        $i++;
    }
    push(@Docu,"\n\n");
}


wie man sieht greift die auf eine datenbank zu (will nicht in zuviele details gehen) und holt sinch informationen via queryes daraus. splittet sie auf und wird spaeter gepusht in @Docu1,@Docu. ich hoffe das hilft

ich denke der error kommt daher da GetDocu eine query hat wo was nicht richtig rauskommt und dann zuviele argumente versucht rauszuholen in der GenerateDocumentation subroutine. ich gehe nochmals drueber aber tipps sind wilkommen denn oft sieht man seine fehler nicht gleich\n\n

<!--EDIT|fraggs|1161593698-->
mmm twix
renee
 2006-10-23 13:29
#71075 #71075
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Die Sub hat wohl Prototypen! Da musst Du schauen was Du übergeben musst/darfst...

Schau Dir mal das an:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
#!/usr/bin/perl

use strict;
use warnings;

sub test($$){
print shift;
}

test('hallo','welt','test');
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
pq
 2006-10-23 13:39
#71076 #71076
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=fraggs,23.10.2006, 10:52]die getdoku ist ne seperate subroutine ich poste sie einfach mal

Code: (dl )
1
2
3
{
    my $project=shift;
    my $BasePrj=shift;
[/quote]
das ist keine subroutine, sonden ein block. du hast es geschafft,
genau den teil wegzulassen, der für dein problem verantwortlich ist.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
fraggs
 2006-10-23 15:22
#71077 #71077
User since
2006-09-11
179 Artikel
BenutzerIn
[Homepage] [default_avatar]
[quote=pq,23.Oct..2006, 11:39][quote=fraggs,23.10.2006, 10:52]die getdoku ist ne seperate subroutine ich poste sie einfach mal

Code: (dl )
1
2
3
{
    my $project=shift;
    my $BasePrj=shift;
[/quote]
das ist keine subroutine, sonden ein block. du hast es geschafft,
genau den teil wegzulassen, der für dein problem verantwortlich ist.[/quote]
sry copy paste hat nicht alles mitgenommen von editor zu website 
Code: (dl )
1
2
3
4
sub GetDocu()
{
    my $project=shift;
    my $BasePrj=shift; ....
danke renee werd ich mir anschauen\n\n

<!--EDIT|fraggs|1161602836-->
mmm twix
renee
 2006-10-23 16:08
#71078 #71078
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Lass die runden Klammern weg. Damit sagst Du nämlich, dass die Funktion keine Argumente übergeben bekommt...

Oder schreib $$ in die Klammern, womit Du sagst, dass zwei Skalare übergeben werden!
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
fraggs
 2006-10-23 16:42
#71079 #71079
User since
2006-09-11
179 Artikel
BenutzerIn
[Homepage] [default_avatar]
war im meeting wegen noch anderem kram werds jetzt ausprobieren

EDIT: jop ohne klammern gehts mal testen ob er auch das macht was ich will danke nochmals\n\n

<!--EDIT|fraggs|1161607492-->
mmm twix
betterworld
 2006-10-23 17:29
#71080 #71080
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
Es wäre gut, wenn Du nächstes Mal nicht gleich 1000 Zeilen postest, sondern erstmal selbst versuchst, die Stelle zu finden, die den Fehler verursacht. Dazu löscht man vorübergehend einige Blöcke/Zeilen. Wenn dann das Problem noch auftritt, löscht man noch mehr. Wenn nicht, dann löscht man etwas anderes. Ich hoffe, Du verstehst, worauf ich hinauswill.

Das steht bestimmt auch irgendwo in Wiki:Wie frage ich im Forum, hast Du das gelesen?\n\n

<!--EDIT|betterworld|1161726016-->
fraggs
 2006-10-24 16:49
#71081 #71081
User since
2006-09-11
179 Artikel
BenutzerIn
[Homepage] [default_avatar]
[quote=betterworld,23.Oct..2006, 15:29]Es wäre gut, wenn Du nächstes Mal nicht gleich 1000 Zeilen postest, sondern erstmal selbst versuchst, die Stelle zu finden, die den Fehler verursacht.  Daz löscht man vorübergehend einige Blöcke/Zeilen.  Wenn dann das Problem noch auftritt, löscht man noch mehr.  Wenn nicht, dann löscht man etwas anderes.  Ich hoffe, Du verstehst, worauf ich hinauswill.

Das steht bestimmt auch irgendwo in Wiki:Wie frage ich im Forum, hast Du das gelesen?[/quote]
werde ich machen aber wenn du genau liest steht in meinem ersten post eigentlich das problem mit error line etc alles drin. die 1000 zeilen was gar keine 1000 zeilen sind ist nur die sub routine wonach gefragt wurde. wenn ich wuesste wo der error ist warum frage ich dann ?

im endeffekt wurde die subroutine nicht benoetigt da dank reneese super antwort nun alles funktioniert

danke
mmm twix
<< |< 1 2 >| >> 11 Einträge, 2 Seiten



View all threads created 2006-10-23 12:32.