It looks like The_DJ post was slurping in correctly, but was not using csv to output a correct csv file.

Try this:

#!/usr/bin/perl use strict; # https://perlmonks.org/?node_id=11159049 use warnings; use Text::CSV qw( csv ); my $data = <<''; File Server,Access Path,Current Permissions,Logon Name,Inherited From +Folders,Flags,User/Group,Classification Results,Classification Result +s by Category (Including Nested),Total Hit Count 10.15.106.71,/Common/Awareness and Training/KnowBe4/2020- KnowBe4 Subs +cription Renewal Docs/Axidome Quote My Corp 2020211 KnowBe4 2-yr Rene +wal FINAL.pdf,FMRWX,@FOO NOW Onsite Support,\Common,This folder only, +Pathway12.My.Corp.com\@FOO NOW Onsite Support,IRS Data (1/1),PII (1), +1 10.15.106.71,/Common/Awareness and Training/KnowBe4/2020- KnowBe4 Subs +cription Renewal Docs/Axidome Quote My Corp 2020211 KnowBe4 2-yr Rene +wal FINAL.pdf,FMRWX,Administrators,\Common,This folder only,10.15.106 +.71\Administrators,IRS Data (1/1),PII (1),1 10.15.106.71,/Common/Awareness and Training/KnowBe4/2020- KnowBe4 Subs +cription Renewal Docs/Axidome Quote My Corp 2020211 KnowBe4 2-yr Rene +wal FINAL.pdf,FMRWX,Creator Owner,\Common,This folder only,Abstract\C +reator Owner,IRS Data (1/1),PII (1),1 10.15.106.71,/Common/Awareness and Training/KnowBe4/2020- KnowBe4 Subs +cription Renewal Docs/Axidome Quote My Corp 2020211 KnowBe4 2-yr Rene +wal FINAL.pdf,FMRWX,FP NOW BMG FSE NTFS Admins,\Common,This folder on +ly,Pathway12.My.Corp.com\FP NOW BMG FSE NTFS Admins,IRS Data (1/1),PI +I (1),1 10.15.106.71,/Common/Awareness and Training/KnowBe4/2020- KnowBe4 Subs +cription Renewal Docs/Axidome Quote My Corp 2020211 KnowBe4 2-yr Rene +wal FINAL.pdf,FMRWX,ClusterSvcDIR,\Common,This folder only,Pathway12. +My.Corp.com\ClusterSvcDIR,IRS Data (1/1),PII (1),1 10.15.106.71,/Common/Awareness and Training/KnowBe4/2020- KnowBe4 Subs +cription Renewal Docs/Axidome Quote My Corp 2020211 KnowBe4 2-yr Rene +wal FINAL.pdf,FMRWX,SYSTEM,\Common,This folder only,Abstract\SYSTEM,I +RS Data (1/1),PII (1),1 10.15.106.71,/Common/Awareness and Training/KnowBe4/2020- KnowBe4 Subs +cription Renewal Docs/Axidome Quote My Corp 2020211 KnowBe4 2-yr Rene +wal FINAL.pdf,FMRWX,MiJim,<not inherited>,This folder only,"Pathway12 +.My.Corp.com\Michaels, Jim@My",IRS Data (1/1),PII (1),1 10.15.106.71,/Common/Awareness and Training/KnowBe4/2020- KnowBe4 Subs +cription Renewal Docs/Axidome Quote My Corp 2020211 KnowBe4 2-yr Rene +wal FINAL.pdf,MRWX,@FP DIR BMG,\Common,This folder only,Pathway12.My. +Corp.com\@FP DIR BMG,IRS Data (1/1),PII (1),1 10.15.106.71,/Common/Awareness and Training/KnowBe4/2020- KnowBe4 Subs +cription Renewal Docs/Axidome Quote My Corp 2020211 KnowBe4 2-yr Rene +wal FINAL.pdf,RX,&CDAdmin,\Common,This folder only,Pathway12.My.Corp. +com\&CDAdmin,IRS Data (1/1),PII (1),1 10.15.106.71,/Common/Awareness and Training/KnowBe4/2020- KnowBe4 Subs +cription Renewal Docs/Axidome Quote My Corp 2020211 KnowBe4 2-yr Rene +wal FINAL.pdf,RX,@FOO DSMS Admins,\Common,This folder only,Pathway12. +My.Corp.com\@FOO DSMS Admins,IRS Data (1/1),PII (1),1 10.15.106.71,/Common/Awareness and Training/KnowBe4/2020- KnowBe4 Subs +cription Renewal Docs/Axidome Quote My Corp 2020211 KnowBe4 2-yr Rene +wal FINAL.pdf,RX,FOO BMG FS Support,\Common,This folder only,Pathway1 +2.My.Corp.com\FOO BMG FS Support,IRS Data (1/1),PII (1),1 10.15.106.71,/Common/Awareness and Training/KnowBe4/2020- KnowBe4 Subs +cription Renewal Docs/Axidome Quote My Corp 2020211 KnowBe4 2-yr Rene +wal FINAL.pdf,RX,DPeterso,\Common,This folder only,"Pathway12.My.Corp +.com\Peterson, Dan@My",IRS Data (1/1),PII (1),1 10.15.106.71,/Common/Awareness and Training/KnowBe4/2020- KnowBe4 Subs +cription Renewal Docs/Axidome Quote My Corp 2020211 KnowBe4 2-yr Rene +wal FINAL.pdf,RX,FP BMG IMG Read Access,\Common,This folder only,Path +way12.My.Corp.com\FP BMG IMG Read Access,IRS Data (1/1),PII (1),1 10.15.106.71,/Common/Awareness and Training/KnowBe4/2020- KnowBe4 Subs +cription Renewal Docs/My-B8245.pdf,FMRWX,@FOO NOW Onsite Support,\Com +mon,This folder only,Pathway12.My.Corp.com\@FOO NOW Onsite Support,IR +S Data (1/1),PII (1),1 10.15.106.71,/Common/Awareness and Training/KnowBe4/2020- KnowBe4 Subs +cription Renewal Docs/My-B8245.pdf,FMRWX,Administrators,\Common,This +folder only,10.15.106.71\Administrators,IRS Data (1/1),PII (1),1 10.15.106.71,/Common/Awareness and Training/KnowBe4/2020- KnowBe4 Subs +cription Renewal Docs/My-B8245.pdf,FMRWX,Creator Owner,\Common,This f +older only,Abstract\Creator Owner,IRS Data (1/1),PII (1),1 my %database; my $aoa = csv( in => \$data ); # FIXME change to filename my @output = shift @$aoa; # the header for my $fields ( @$aoa ) { my $ref = \%database; $ref = $ref->{$_} //= {} for @$fields; } combine( \%database ); # combine lines with common beginning csv( in => \@output, out => *STDOUT ); # FIXME change to filename sub tail { my $ref = shift; my ($key) = sort keys %$ref; $key ? ( $key, tail( $ref->{$key} ) ) : (); } sub combine { my ($ref, @lines) = @_; my @keys = sort keys %$ref; if( @keys > 1 and @lines >= 3 ) { my $group = join ',', @keys; push @output, [ @lines, $group, tail $ref->{$keys[0]} ]; } else { combine( $ref->{$_}, @lines, $_ ) for @keys; @keys or push @output, \@lines; } }

which outputs:

"File Server","Access Path","Current Permissions","Logon Name","Inheri +ted From Folders",Flags,User/Group,"Classification Results","Classifi +cation Results by Category (Including Nested)","Total Hit Count" 10.15.106.71,"/Common/Awareness and Training/KnowBe4/2020- KnowBe4 Sub +scription Renewal Docs/Axidome Quote My Corp 2020211 KnowBe4 2-yr Ren +ewal FINAL.pdf",FMRWX,"@FOO NOW Onsite Support,Administrators,Cluster +SvcDIR,Creator Owner,FP NOW BMG FSE NTFS Admins,MiJim,SYSTEM",\Common +,"This folder only","Pathway12.My.Corp.com\@FOO NOW Onsite Support"," +IRS Data (1/1)","PII (1)",1 10.15.106.71,"/Common/Awareness and Training/KnowBe4/2020- KnowBe4 Sub +scription Renewal Docs/Axidome Quote My Corp 2020211 KnowBe4 2-yr Ren +ewal FINAL.pdf",MRWX,"@FP DIR BMG",\Common,"This folder only","Pathwa +y12.My.Corp.com\@FP DIR BMG","IRS Data (1/1)","PII (1)",1 10.15.106.71,"/Common/Awareness and Training/KnowBe4/2020- KnowBe4 Sub +scription Renewal Docs/Axidome Quote My Corp 2020211 KnowBe4 2-yr Ren +ewal FINAL.pdf",RX,"&CDAdmin,@FOO DSMS Admins,DPeterso,FOO BMG FS Sup +port,FP BMG IMG Read Access",\Common,"This folder only",Pathway12.My. +Corp.com\&CDAdmin,"IRS Data (1/1)","PII (1)",1 10.15.106.71,"/Common/Awareness and Training/KnowBe4/2020- KnowBe4 Sub +scription Renewal Docs/My-B8245.pdf",FMRWX,"@FOO NOW Onsite Support,A +dministrators,Creator Owner",\Common,"This folder only","Pathway12.My +.Corp.com\@FOO NOW Onsite Support","IRS Data (1/1)","PII (1)",1

This looks like it correctly quotes unchanged fields that contain commas. If it doesn't for you, please post the failed lines and the code you ran to get the failed lines.


In reply to Re^3: Building a dynamic array or some other method? by tybalt89
in thread Building a dynamic array or some other method? by CAdood

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.