#!/usr/bin/perl -p # isort -- sort C variable declarations separated by commas # Extract words, save prefix. s/([^,]*?)(\S+[,;])/$2/; $prefix = $1; # Ensure all words end with comma. $semicolon = s/;$/,/; # Sort words. @words = sort { ($x = $a) =~ s/^\*+//; ($y = $b) =~ s/^\*+//; $x cmp $y } split /\s+/; # Join words, add prefix and semicolon. $_ = $prefix . (join ' ', @words) . "\n"; s/,$/;/ if $semicolon;