Thread Warnung bei sprintf vermeiden wenn zu wenig Argumente (11 answers)
Opened by GwenDragon at 2018-03-30 10:57

GwenDragon
 2018-04-02 13:27
#188221 #188221
User since
2005-01-17
14759 Artikel
Admin1
[Homepage]
user image
2018-04-02T09:14:59 rosti
Code (perl): (dl )
my $VERSION = do { my @r = (q$Revision$ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
Das kann gehen. Erzeugt aber leider nicht immer das Erwünschte.
~ perl
my $VERSION = do { my @r = (q$Revision 1.01.002$ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
print $VERSION
^Z
1.0102

Wenn Leute nämlich nur Version.Subversion wollen/brauchen als Version, klappt dein Beispiel nicht mehr.
Deswegen hatte ich ja in Post #1 das Regex anders dargestellt.
Code (perl): (dl )
our $VERSION = sprintf 'v.%02d.%03d', q $ Revision 1.12.123 $ =~ /(\d+)\.(\d+)\.(\d+)/;


Nur so als Hinweis an andere.

Ich benutze ja schon lange ein anderes VCS, muss aber manchmal "schlechten" Code anderer Leute anfassen. =:(

View full thread Warnung bei sprintf vermeiden wenn zu wenig Argumente