I am writing a perl script to work with rpm files. Part of it involves matching a RPM filename and determining rpm name and version. Currently I have the following test case
#!/usr/bin/perl -w
$filename = "urpmi-parallel-ssh-4.0-20.1mdk.noarch.rpm";
print "$filename\n";
if ($filename =~ m/([a-zA-Z0-9]+)(\-\w+)*-([0-9.]+)-([0-9.]+mdk)\.(\w+
+)\.rpm/) {
print $1 . "\n";
print $2 . "\n";
print $3 . "\n";
print $4 . "\n";
}
I want this to print
urpmi-parallel-ssh-4.0-20.1mdk.noarch.rpm
urpmi-parallel-ssh
4.0-20.1mdk
noarch
rpm
Instead it currently prints:
urpmi-parallel-ssh-4.0-20.1mdk.noarch.rpm
urpmi
-ssh
4.0
20.1mdk
Unfortunately I am struggling to get further. If anyone can help I would appreciate it. Also if there are better approaches to this problem please let me know.
I can't get RPM to install and the RPM file is not local