perl file rename regexp hiba

Sziasztok!
123133.xml.pdf formájú fájlokat szeretnék Perl scriptben átnevezni 123133.pdf-re.
Miért nem fut ez nekem:

rename 's/\.xml$//' *.pdf;

Ezt írja hibának:

syntax error at ./nyomtatas line 14, near "*."

Próbáltam már elfedni a .-ot, úgy sem jó.

Hozzászólások

Az általad írt kódban honnan kapja a filenevet amire a mintát illeszti? Talán ez a forma bash-ben kell, hogy működjön.
Perlben én így oldanám meg (nem biztos, hogy a legelegánsabb):


my @filenames = <*.xml.pdf>;
foreach my $filename (@filenames) {
	$filename =~ /(.*)\.xml\.pdf$/;
	rename( $filename, "$1.pdf");
  }

Ha esetleg nem lenne érthető akkor megpróbálom elmagyarázni.



#a @filenames tömben vannak a filenevek és ezt eggyessével átadja a $filenanme változóba.
foreach my $filename (@filenames) {

	#a zárójelben "(.*)" lévő részt $1 változóba rakja. 
	$filename =~ /(.*)\.xml\.pdf$/; 

        #átnevez ($mit, $mire) 
	rename( $filename, "$1.pdf");
  }