/ Forside / Teknologi / Udvikling / Perl / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Perl
#NavnPoint
bjarneA 141
poul_from 50
soccer 30
Nicknack 14
Tmpj 0
under biblioteker...
Fra : Flemming Hansen


Dato : 11-11-02 18:38

Hejsa,

Hvordan tager man underbiblioteker med når man bruger "opendir"?

Altså jeg vil gerne gøre følgende;

Jeg vil lave en liste over alle de mp3 filer jeg har. Men der er også
underbiblioteker med artist navne... Er der en ikke-så
kompliseret-og-nybegynder-niveau måde at realisere dette på? Jeg har før
prøvet

opendir(MP3_LIST,"$root/users"))){ print "DIRECTORY READING ERROR"; }
my(@list) = readdir(MP3_LIST);
closedir(MP3_LIST);

my(@online_users) = '';
my($count_user) = 0;
foreach $line (sort @list){
if ($line ne '.' && $line ne '..'){
print "$line\n";
}
}

Dette eksample printer vist ikke indholdet af underbiblioteker...



 
 
Peter Makholm (11-11-2002)
Kommentar
Fra : Peter Makholm


Dato : 11-11-02 18:42

"Flemming Hansen" <fatih@ofir.dk> writes:

> Hvordan tager man underbiblioteker med når man bruger "opendir"?

Du kan ikke få opendir til automatisk at give dig hele katalogtræet
under det katalog du åbner. Enten skal du selv gå katalogstrukturen
rekursivt eller også skal du bruge File::Find.

--
Peter Makholm | One thing you do is prevent good software from
peter@makholm.net | being written. Who can afford to do professional
http://hacking.dk | work for nothing?
| -- Bill Gates

Flemming Hansen (11-11-2002)
Kommentar
Fra : Flemming Hansen


Dato : 11-11-02 18:51

Øhm, jeg vil ikke rigtig hvordan jeg kan bruge File::Find da jeg er en
nybegynder og vil ikke dykke så dybt ind i perl endnu Det er sådan at
mit lille script skal kunne opdatere listen foreløbig uden at jeg kender
katalogstrukturen.. Altså hvis en anden kommer og organisere filerne under
flere kataloge skal porogrammet kunne se ændringerne... Jeg leder altså
efter noget der minder om DOS' "dir /s" kommando...



Thomas Bjorn Anderse~ (11-11-2002)
Kommentar
Fra : Thomas Bjorn Anderse~


Dato : 11-11-02 19:33

"Flemming Hansen" <fatih@ofir.dk> writes:

> Øhm, jeg vil ikke rigtig hvordan jeg kan bruge File::Find da jeg er en
> nybegynder og vil ikke dykke så dybt ind i perl endnu Det er sådan at
> mit lille script skal kunne opdatere listen foreløbig uden at jeg kender
> katalogstrukturen.. Altså hvis en anden kommer og organisere filerne under
> flere kataloge skal porogrammet kunne se ændringerne... Jeg leder altså
> efter noget der minder om DOS' "dir /s" kommando...

@a=`find /my/mp3files -type f -print`;

Men File::Find er stadig den "rigtige" måde at gøre det på...

--
Thomas Bjorn Andersen - tbaNOSPAM200211@gen-v.net
+++ATH

Peter Makholm (11-11-2002)
Kommentar
Fra : Peter Makholm


Dato : 11-11-02 19:42

"Flemming Hansen" <fatih@ofir.dk> writes:

> Øhm, jeg vil ikke rigtig hvordan jeg kan bruge File::Find da jeg er en
> nybegynder og vil ikke dykke så dybt ind i perl endnu Det er sådan at

Vel, altså et eller andet ala det følgende:

#!/usr/bin/perl

use File::Find;

sub wanted {
($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,
$atime,$mtime,$ctime,$blksize,$blocks) = stat _;

print "$File::Find::name\t$size\t", scalar localtime $ctime, "\n" if -f _;
}

find(\&wanted, ".");
__END__

--
Peter Makholm | Sit back and watch the messages. This is actually
peter@makholm.net | more important than one might think as there is a
http://hacking.dk | bug in GNU Mach whereby hitting a key during the
| boot process causes the kernel to panic
| -- GNU Hurd Installation Guide

Dennis Haney (11-11-2002)
Kommentar
Fra : Dennis Haney


Dato : 11-11-02 21:09

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

"Flemming Hansen" <fatih@ofir.dk> writes:

> Øhm, jeg vil ikke rigtig hvordan jeg kan bruge File::Find da jeg er en

Det er der ikke nogen der kan ;)

Derfor bruger man find2perl(1) som tager samme argumenter som find(1),
men producerer den tilsvarende perl kode istedet ;)


- --
Dennis
I have always thought explanations were overkill when correcting
mistakes. A simple "that's wrong" must suffice. I mean, people are
always aware why they are wrong. They just make mistakes to annoy you.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: Processed by Mailcrypt 3.5.8 <http://mailcrypt.sourceforge.net/>

iD8DBQE90A5Zo6hqeoa8JFgRAs3tAKDGjT/UB9MKjJUk8fTbnF+n9EDW9QCfRNTS
IxRNAR8FcT0RzEtdk8Jdsu0=
=fk8M
-----END PGP SIGNATURE-----

Henrik Tougaard (13-11-2002)
Kommentar
Fra : Henrik Tougaard


Dato : 13-11-02 09:57

Dennis Haney wrote:

> "Flemming Hansen" <fatih@ofir.dk> writes:
>
>> Øhm, jeg vil ikke rigtig hvordan jeg kan bruge File::Find da jeg er en
>
> Det er der ikke nogen der kan ;)
>
> Derfor bruger man find2perl(1) som tager samme argumenter som find(1),
> men producerer den tilsvarende perl kode istedet ;)

Der er da heller ikke nogen der kan finde ud af find(1) ;>
Prøv at se på File::Find::Rule
(http://search.cpan.org/author/RCLAMP/File-Find-Rule-0.07/Rule.pm), der
embm er noget lettere at finde rundt i.

--
Henrik

Peter Makholm (11-11-2002)
Kommentar
Fra : Peter Makholm


Dato : 11-11-02 21:11

Dennis Haney <davh@diku.dk> writes:

>> Øhm, jeg vil ikke rigtig hvordan jeg kan bruge File::Find da jeg er en
>
> Det er der ikke nogen der kan ;)

Det er ellers let nok.

--
Peter Makholm | There are 10 kinds of people. Those who count in
peter@makholm.net | binary and those who don't
http://hacking.dk |

Flemming Mahler Lars~ (12-11-2002)
Kommentar
Fra : Flemming Mahler Lars~


Dato : 12-11-02 11:19

Peter Makholm wrote:
> Dennis Haney <davh@diku.dk> writes:
>
>
>>>Øhm, jeg vil ikke rigtig hvordan jeg kan bruge File::Find da jeg er en
>>
>>Det er der ikke nogen der kan ;)
>
>
> Det er ellers let nok.
>
Her er lidt inspiration:
--- start ---
#!/usr/local/bin/perl -w
use strict;
use File::Find;

find(\&work, '.');

sub work {
-d and print "$File::Find::dir\/$_\n";
# eller:
#-d and print "$File::Find::name\n";

-f and /\.pl$/ or return;
print "\t* $_\n";
# eller:
# print "\t$File::Find::name\n";
}
-- stop --

Ovenstående finder alle .pl-filer, du har liggende i current directory
og nedefter.

(( Flemming ))

--
Flemming Mahler Larsen, Online Technology @ TDC Internet
http://card.netfactory.dk/ , +45 3552 6452

Jeg repræsenterer med dette indlæg mig selv og ikke TDC Internet


Flemming Hansen (11-11-2002)
Kommentar
Fra : Flemming Hansen


Dato : 11-11-02 18:45

Og en tilføjelse...

Hvordan kan jeg tage dato og fil størrelse med på listen så jeg kan lave en
index-of (en side når der mangles index.html) lignende liste?

Tak på forhånd




Peter Makholm (11-11-2002)
Kommentar
Fra : Peter Makholm


Dato : 11-11-02 19:02

"Flemming Hansen" <fatih@ofir.dk> writes:

> Hvordan kan jeg tage dato og fil størrelse med på listen så jeg kan lave en
> index-of (en side når der mangles index.html) lignende liste?

Det gør du med funktionen stat.

--
Peter Makholm | Have you ever felt trapped inside a Klein bottle?
peter@makholm.net |
http://hacking.dk |

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408925
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste