http://www.perlmonks.org?node_id=538822

gawatkins has asked for the wisdom of the Perl Monks concerning the following question:

I have a set of strings returned from a function depicting Active Directory user accounts. The string is in the form of:

Win32_Account.Domain="ADDomain",Name="aduser1" Win32_Account.Domain="ADDomain",Name="aduser2" Win32_Account.Domain="ADDomain",Name="aduser3" Win32_Account.Domain="ADDomain",Name="aduser4"
I would like to change the format to read:
ADDomain\aduser1 ADDomain\aduser2 ADDomain\aduser3 ADDomain\aduser4
So they can easily be understood on a report. I am currently using the following code to perform this task.
#!/usr/bin/perl -w use strict; use warnings; my $string = q/ Win32_Account.Domain="ADDomain",Name="aduser1"/; my ( $domain, $uname ) = split( ",", $string ); $domain =~ s/\"//ig; $domain =~ s/Win32_Account.Domain=//ig; $uname =~ s/\"//ig; $uname =~ s/Name=//ig; #concat the parts or replace with Account Deleted if SID not found my $user = ( $uname eq "" ? "Account Deleted" : $domain . "\\" . $unam +e ); print $user;
Although the code works, is there a more efficient way to do the work. Any advice would be welcomed.

Thank you,
Greg W.

Update: