Som udgangspunkt ikke. De er ofte mere forvirrende end nyttige. Overvej i sted at ligge tingene ud i sub-funktioner eller ligende og kald funktionen igen, når du har brug for at få gentaget en funktionalitet.
Normalt plejer behovet for labels at tyde på man ikke har fået struktureret sit program ordenligt (der mest af alt tangere \"nødudgange\" (til flowet) i ens program).
Jeg går ud fra at det er noget c++/c lignede du har gang i (?)...
Hvis det er tilfældet, så er svaret; nej labels/goto anses som dårlig programmering stil, så prøv om du ikke kan finde en anden måde hvorpå du kan løse dit problem. Hvis du ikke kan det, ja så er du nok nød til at bruge labels :-)
sub hej { BBOpretBrugere( Goofy, abcdef, Fedtmule, Goofy ); }
## Parameter $_[0] : IN Bruger-id ## Parameter $_[1] : IN Password ## Parameter $_[2] : IN fnavn ## Parameter $_[3] : IN enavn
my $BrugerID = lc($_[0]); my $BrugerPWD = $_[1]; my $fnavn = $_[2]; my $enavn = $_[3];
my @data; my $maxlines = 499; my $taeller = 0; my $count =0; my $fil_taeller = 0;
$email = \"$BrugerID\\@student.aabc.dk\"; open FILE, \"Opret_BB_Brugere_$fil_taeller.txt\";
while (<FILE> && $count < $maxlines) { push @data, $_; $count++; } close FILE; $taeller = $count; print $count;
if( $taeller == $maxlines ) { close fil; $taeller = 0; $fil_taeller = $fil_taeller + 1; open(fil,\">>c:\\\\Blackboard\\\\Opret_BB_Brugere_$fil_taeller.txt\") || die \"kan ikke oprettes\";
#Goto While løkke igen #print fil \"$BrugerID:$enavn:$fnavn:$email:$BrugerPWD\\n\"; } elsif ( $taeller < $maxlines ) { open(fil,\">>c:\\\\Blackboard\\\\Opret_BB_Brugere_$fil_taeller.txt\") || die \"kan ikke oprettes\"; print fil \"$BrugerID:$enavn:$fnavn:$email:$BrugerPWD\\n\";
} close fil;
}
##--------------------------------------------------------------------------------- ### MAIN ##---------------------------------------------------------------------------------
hej();
Det jeg skal er vil at få While løkken som tæller i en SUB function så jeg kan kalde den hvergang.
# Sub function... sub BBOpretBrugere { my (Bruger-id, Password, fnavn, $enavn) = @_;
my @data; my $maxlines = 499; my $count =0; my $filecount = 0;
$email = \"$BrugerID\\@student.aabc.dk\";
# Read existing data... open FILE, \"Opret_BB_Brugere_$fil_taeller.txt\"; while (<FILE> && $count < $maxlines) { push @data, $_; $count++; } close FILE;
# Add new data to existing data set... push @data, \"$BrugerID:$enavn:$fnavn:$email:$BrugerPWD\\n\";
# Split new data into file blocks... my @toFile; my @data2file; while (@data) { push @data2file, $_; $count++; if ($count == $maxlines) { push @toFile, +{ count => $filecount, data => \\@data2file); @data2file =(); $filecount++; $count =0; } }
# Write new data to files... for my $file (@toFile) { open(DATAOUT,\">>c:\\\\Blackboard\\\\Opret_BB_Brugere_\" . $_->{count} . \".txt\") || die \"kan ikke oprettes ($!)\"; for (@$_->{data}) { print DATAOUT \"$_\" } close DATAOUT; } }
Da Mahler kom først med svaret for han pointene, og tak for kode, jeg bruger den til vejledning.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.