Schrift
[thread]8424[/thread]

regexp unix vs windoof



<< >> 5 Einträge, 1 Seite
shaihulud
 2006-10-17 19:08
#70839 #70839
User since
2006-04-12
76 Artikel
BenutzerIn
[default_avatar]
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# get_format holt sich über den namen der Datei das Format des document
sub get_format{
use strict;
use warnings;
use File::Basename;
my $suffix;
my @files;
my $name = shift;
my $doc_format = shift;
my $srcdir =shift;

foreach my $f (glob( $srcdir."$$name.*" ) ) {
my ($basename, $path, $ext ) = fileparse ( $f, "\..+" );
next if $ext =~ /(JPL|a00)$/;
push( @files, $f );
}

foreach my $ele (@files){
my @s = split(/\./,$ele);
$$doc_format = $s[1];
}
}


hi ich hab gelesen dass es zwischen unix und windows unterschiede gibt zb beim fileparse. Kennt sich da jemand aus und kann mir jemand sagen wie ich es anders schreiben muesste dass es auf unix läuft?
greez danke

P.S.: Die Problematik sieht im großen bild so aus: Mein Programm erstellt html seiten mit pfadangaben auf dokumente.
Bei mir auf dem System (Windoof) geht alles ohne Probleme.Mein Arbeitgeber jedoch arbeitet mit Unix, bei ihm sind die pfade wie bei mir bis auf die tatsache dass die Dateiendung nicht dranhängt. zb:
bei mir: "datei.txt"
bei ihm: "datei."
könnte das an dieser Funktion liegen die ich gepostet habe? speziell an der Regexp bei fileparse?
bloonix
 2006-10-18 10:25
#70840 #70840
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
Hi,

mal davon abgesehen, dass in deinem Codestück Fehler drin sind und
auch eine Stelle da ist, die ich nicht verstehe, klappt es bei mir
hervorragend!

Fehler: $$name, $$doc_format
Unverständlich: my $doc_format = shift;

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
#> ls -1
file.doc
file.odt
file.txt
test.pl

#> cat test.pl
#!/usr/bin/perl
use strict;
use warnings;
use File::Basename;
use Data::Dumper;

sub get_format{
  my $suffix;
  my @files;
  my $name = shift;
  my $doc_format = shift;
  my $srcdir = shift;

  foreach my $f (glob( $srcdir."$name.*" ) ) {
    my ($basename, $path, $ext ) = fileparse ( $f, "\..+" );
    next if $ext =~ /(JPL|a00)$/;
    push( @files, $f );
  }

  foreach my $ele (@files){
    my @s = split(/\./,$ele);
    $doc_format = $s[1];
  }
  return \@files;
}

my $files = get_format('file', '', './');

print Dumper($files);

#> ./test.pl
$VAR1 = [
         './file.doc',
         './file.odt',
         './file.txt'
       ];


Gruss,
opi\n\n

<!--EDIT|opi|1161152983-->
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
renee
 2006-10-18 10:51
#70841 #70841
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
An fileparse dürfte es nicht liegen, da CPAN:File::Basename schon so geschrieben ist, dass es sowohl mit Unix als auch Windows umgehen kann.

Lass Dir doch zwischendrin mal die Ergebnisse ausgeben. Zum Beipsile mal mit CPAN:Data::Dumper das @files-Array.
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/
renee
 2006-10-18 11:25
#70842 #70842
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
@opi: Warum sollen das eigentlich Fehler sein? Es können auch Skalare als Referenzen übergeben werden:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
#!/usr/bin/perl

use strict;
use warnings;

my $test = 'Hallo';
test(\$test);
print $test;

sub test{
my $ref = shift;
$$ref = 'test';
}


Ausgabe:
Code: (dl )
1
2
~/entwicklung 173> perl ref.pl 
test


Ob es tatsächlich ein Fehler ist, kann nur der OP wissen, da er nicht gezeigt hat, wie die Sub aufgerufen wird und welche Daten da ü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/
bloonix
 2006-10-18 12:20
#70843 #70843
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
@renee, du hast natürlich recht!

Perldoc:Perlreftut

Quote
For example, @$aref is the same as @{$aref} , and $$aref[1] is the same as ${$aref}[1] .


Das wußte ich noch garnicht! Da hätte ich eventuell vorher nachschauen sollen! =)\n\n

<!--EDIT|opi|1161159679-->
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
<< >> 5 Einträge, 1 Seite



View all threads created 2006-10-17 19:08.