Leser: 15
system ('attrib -a ' . $pfaddatei);
QuoteGetAttributes(filename, returnedAttributes)
Gets the attributes of a file or directory. returnedAttributes will be set to the OR-ed combination of the filename attributes.
my $test = Win32::File -> GetAttributes ('ftp.pl', 'A');
Usage: Win32::File::GetAttributes(filename, attribs) at ftp.pl line 24.
my $test = Win32::File -> GetAttributes ('ftp.pl');
Modification of a read-only value attempted at ftp.pl line 24.
1 2
use Win32::File qw/ ARCHIVE COMPRESSED... /; ... GetAttributes($file, ARCHIVE | COMPRESSED );
1 2 3 4
use Win32::File; my $test = Win32::File -> GetAttributes ("ftp.pl",ARCHIVE); print "test: >$test<\n"; exit();
Usage: Win32::File::GetAttributes(filename, attribs) at ftp.pl line 24.
Subroutine DIRECTORY redefined
my $test = Win32::File::GetAttributes ("ftp.pl",ARCHIVE);
2009-10-10T11:20:34 bianca
QuoteDass die Konstanten importiert wurden hab ich durch ein erzwungenes
sichergestellt.Code: (dl )Subroutine DIRECTORY redefined
2009-10-10T11:28:01 biancaSorry, habs ja gesehen.
2009-10-10T11:33:21 pq2009-10-10T11:28:01 biancaSorry, habs ja gesehen.
du hast in deinem code-beispiel, was du hier gepostet hast, nirgendwo die konstanten importiert. wie soll das dann gehen? durch geisterhand?
2009-10-10T11:42:13 biancasiehe Anleitung "The following constants are exported by default."
1
2
3
4
5
6
7
Imports some semantics into the current package from the named module,
generally by aliasing certain subroutine or variable names into your
package. It is exactly equivalent to
BEGIN { require Module; Module->import( LIST ); }
except that Module must be a bareword.
BEGIN { require Win32::File; Win32::File->import('ARCHIVE'); }
eval { require Win32::File; Win32::File->import('ARCHIVE'); };
1 2 3 4 5 6 7 8 9 10 11
#!/usr/bin/perl -w use strict; use warnings; local *ARCHIVE; eval { require Win32::File; }; if (!$@) { Win32::File->import('ARCHIVE'); my $test = Win32::File::GetAttributes ("eval.pl",ARCHIVE); print "test: >$test<\n"; } else { print "Schrott: >$@<\n" }
QuoteBareword "ARCHIVE" not allowed while "strict subs" in use at eval.pl line 8.
Execution of eval.pl aborted due to compilation errors.
1 2 3 4 5 6 7 8 9 10
#!/usr/bin/perl -w use strict; use warnings; BEGIN { eval "use Win32::Filex qw/ ARCHIVE /" } if (!$@) { Win32::File->import('ARCHIVE'); my $test = Win32::File::GetAttributes ("eval.pl",ARCHIVE); print "test: >$test<\n"; } else { print "Schrott: >$@<\n" }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
#!/usr/bin/perl -w use strict; use warnings; my $errorbindings = ''; BEGIN { eval "use Win32::Filex"; if ($@) { $errorbindings = $@; } } if (!$errorbindings) { my $test = Win32::File::GetAttributes ("eval.pl",ARCHIVE); print "test: >$test<\n"; } else { print "Schrott: >$errorbindings<\n" }
1
2
Bareword "ARCHIVE" not allowed while "strict subs" in use at eval.pl line 12.
Execution of eval.pl aborted due to compilation errors.
2009-10-10T14:16:15 pqargh, wieso laesst du denn in dem code jetzt die konstanten im use-statement wieder weg? an der einen stelle fixt du was und an der anderen machst du aber wieder den alten fehler.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
#!/usr/bin/perl -w use strict; use warnings; my $errorbindings = ''; BEGIN { eval "use Win32::File qw/ ARCHIVE /"; if ($@) { $errorbindings = $@; } } if (!$errorbindings) { my $test = Win32::File::GetAttributes ("eval.pl",ARCHIVE); print "test: >$test<\n"; } else { print "Schrott: >$errorbindings<\n" }
Quotewas allerdings kompletter Unfug ist, weil die Datei das Attribut nicht hat, trotzdem wird 1 geliefert??test: >1<
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
#!/usr/bin/perl -w use strict; use warnings; my $errorbindings = ''; BEGIN { eval "use Win32::Filex qw/ ARCHIVE /"; if ($@) { $errorbindings = $@; } } if (!$errorbindings) { my $test = Win32::File::GetAttributes ("eval.pl",ARCHIVE); print "test: >$test<\n"; } else { print "Schrott: >$errorbindings<\n" }
QuoteBareword "ARCHIVE" not allowed while "strict subs" in use at eval.pl line 12.
Execution of eval.pl aborted due to compilation errors.
2009-10-10T14:17:35 pqim uebrigen, was soll "Win32::Filex" fuer ein modul sein?
2009-10-10T14:24:25 pqja wie soll das denn gehn? wenn das modul nicht gefunden wird, koennen die konstanten auch nicht importiert werden! wenn du dann ARCHIVE benutzt, ist doch klar, dass perl meckert. wo ist denn jetzt das problem? du willst die barewords auch benutzen, wenn das modul nicht geladen wurde? benutze stattdessen ARCHIVE() statt ARCHIVE. das schrieb ich auch schon frueher. auch du koenntest meine postings etwas aufmerksamer lesen.
2009-10-10T11:58:49 pqschreib ein BEGIN um das require und import. oder schreib ARCHIVE() bei der benutzung.
2009-10-10T14:33:51 pq2009-10-10T11:58:49 pqschreib ein BEGIN um das require und import. oder schreib ARCHIVE() bei der benutzung.
ist das so schwer zu verstehen? schreib dort, wo du ARCHIVE *benutzt* (also ja wohl im funktionsaufruf von GetAttributes), stattdessen ARCHIVE(). weil es *dann* von perl nicht mehr als bareword angesehen wird.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
#!/usr/bin/perl -w use strict; use warnings; my $errorbindings = ''; BEGIN { eval "use Win32::Filex qw/ ARCHIVE /"; if ($@) { $errorbindings = $@; } } if (!$errorbindings) { my $test = Win32::File::GetAttributes ("eval.pl",ARCHIVE()); print "test: >$test<\n"; } else { print "Schrott: >$errorbindings<\n" }
QuoteUndefined subroutine &main::ARCHIVE called at eval.pl line 12.
Quotetest: >1<
1 2 3 4
GetAttributes($file, my $attributes); if ( $attributes | ARCHIVE() ) { ... }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
#!/usr/bin/perl -w use strict; use warnings; my $errorbindings; BEGIN { eval "use Win32::File qw/ ARCHIVE /"; if ($@) { $errorbindings = $@; } } if (!$errorbindings) { # my $test = Win32::File::GetAttributes ("eval.pl",ARCHIVE()); Win32::File::GetAttributes('eval.pl', my $attributes); if ( $attributes | ARCHIVE() ) { print "Attribut ist gesetzt\n"; } } else { print "Schrott: >$errorbindings<\n" }
QuoteAttribut ist gesetzt
system ('attrib eval.pl')
print `attrib C:\\MEIN\\PFAD\\eval.pl`;
2009-10-10T13:50:13 biancaIch wäre Dir zu tiefstem Dank verpflichtet, wenn Du mir diese kleine Situation bitte als Ganzes lauffähig zeigen würdest
2009-10-10T14:20:23 pq2009-10-10T13:50:13 biancaIch wäre Dir zu tiefstem Dank verpflichtet, wenn Du mir diese kleine Situation bitte als Ganzes lauffähig zeigen würdest
das kann ich nicht, ich hab kein windows hier. aber poste du bitte auch den wirklichen code, denn es gibt kein cpan-modul Win32::Filex
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
#!/usr/bin/perl use strict; use warnings; BEGIN { eval "use Data::Dumper"; } if (main->can('Dumper')) { print "CAN: ".Dumper('TEST'); } else { print "CANT\n"; }