Title: RE: Trouble with sysread in modperl

Stas,

        Yes we tried reading <STDIN> and it works:

    while ($readData = <STDIN>) {
        $buffer        .= $readData;
        $bufferLength   = length($buffer);
        ......
    }

        But it's not working with sysread or read, here are the results for read, the last line is what we expected but it's null:

   while ($bytesRead = read(STDIN, $buffer, 4096)) {
        &html("bytesRead=[$bytesRead] data="" if ($debug);
    }

Here's the results from the above code :

bytesRead=[4096] data="">
Content-Disposition: form-data; name="sessionId"

SYSTEM-admin-156534-0993
-----------------------------7d33e41f304f2
Content-Disposition: form-data; name="userId"

SYSTEM-admin
-----------------------------7d33e41f304f2
Content-Disposition: form-data; name="bankKey"

RB_AFG
-----------------------------7d33e41f304f2
Content-Disposition: form-data; name="returnTo"

uploadFileToEnterprise.main
-----------------------------7d33e41f304f2
Content-Disposition: form-data; name="target"

_top
-----------------------------7d33e41f304f2
Content-Disposition: form-data; name="enterpriseConfName"

send810Chrysler
-----------------------------7d33e41f304f2
Content-Disposition: form-data; name="uploadFile"; filename="D:\webstuff\rbc\Docs\810credit"
Content-Type: text/plain

HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||3549
PR|20000308|27042.11
VR|1B7GL22N5YS708674|DAKR/C|2000
IR||27042.11|1769.11
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||3549
PR|20000308|39611.40
VR|1B7KF23Z71J222401|RAMC/Q|2001
IR||39611.40|2591.40
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||3549
PR|20000308|25377.19
VR|2B4GP2537YR757792|CARAVN|2000
IR||25377.19|1660.19
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||3587
PR|20000308|30879.13
VR|1B4GP44L7YB689425|GRDCAR|2000
IR||30879.13|2020.13
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||3804
PR|20000308|33067.28
VR|1B4GP44L7YB680806|GRDCAR|2000
IR||33067.28|2163.28
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||3804
PR|20000308|41202.49
VR|1B4HS28N4YF243809|DURNGO|2000
IR||41202.49|2695.49
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||3804
PR|20000308|29377.92
VR|1B7GG22N3YS698862|DAKR/C|2000
IR||29377.92|1921.92
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||3804
PR|20000308|42183.68
VR|1B7KF236X1J219823|RAMC/Q|2001
IR||42183.68|2759.68
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||3804
PR|20000308|45825.96
VR|1B7KF23651J219504|RAMC/Q|2001
IR||45825.96|2997.96
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||3804
PR|20000308|42716.54
VR|1B7KF23661J219494|RAMC/Q|2001
IR||42716.54|2794.54
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||3804
PR|20000308|42183.68
VR|1B7KF23681J219822|RAMC/Q|2001
IR||42183.68|2759.68
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||3804
PR|20000308|47334.66
VR|1B7MF33621J228921|RAMC/Q|2001
IR||47334.66|3096.66
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||3804
PR|20000308|46155.52
VR|1B7MF33791J217374|RAMC/Q|2001
IR||46155.52|3019.52
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||3804
PR|20000308|25799.84
VR|2B4GP2534YR748242|CARAVN|2000
IR||25799.84|1687.84
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||3804
PR|20000308|31910.61
VR|2C3HH56JXYH323217|INTRED|2000
IR||31910.61|2087.61
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||3804
PR|20000308|31910.61
VR|2C3HH56J1YH323218|INTRED|2000
IR||31910.61|2087.61
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||3804
PR|20000308|28307.92
VR|3B7HC13Y41G193297|RAMC/Q|2001
IR||28307.92|1851.92
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||3823
PR|20000308|45550.97
VR|1B7KF23611J219659|RAMC/Q|2001
IR||45550.97|2979.97
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||3823
PR|20000308|49393.34
VR|1B7MF33701J216680|RAM]
bytesRead=[4096] data="">
IR||49393.34|3231.34
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||3823
PR|20000308|28950.99
VR|3B7HC12Y01G193301|RAMC/Q|2001
IR||28950.99|1893.99
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||3917
PR|20000308|38028.87
VR|1B4HS28N0YF233603|DURNGO|2000
IR||38028.87|2487.87
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||3917
PR|20000308|29174.62
VR|1B7GL22Z3YS709566|DAKR/C|2000
IR||29174.62|1908.62
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||3917
PR|20000308|45895.51
VR|1B7MF33721J213909|RAMC/Q|2001
IR||45895.51|3002.51
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||5056
PR|20000308|26134.75
VR|1B7HC16YX1S676782|RAMREG|2001
IR||26134.75|1709.75
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||5123
PR|20000308|27864.94
VR|1B7GL2AX8YS709563|DAKQUD|2000
IR||27864.94|1822.94
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||5135
PR|20000308|25545.18
VR|1C3EJ56H7YN233051|CIRRUS|2000
IR||25545.18|1671.18
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||5135
PR|20000308|26167.92
VR|1J4FA49S7YP770034|TJ|2000
IR||26167.92|1711.92
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||5135
PR|20000308|27234.71
VR|2B4GP2438YR749458|GRDCAR|2000
IR||27234.71|1781.71
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||5135
PR|20000308|25959.27
VR|2B4GP2538YR749457|CARAVN|2000
IR||25959.27|1698.27
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||5144
PR|20000308|21835.49
VR|1C3ES46C2YD760089|NEON|2000
IR||21835.49|1428.49
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||5607
PR|20000308|29656.12
VR|1B4GP44L9YB681133|GRDCAR|2000
IR||29656.12|1940.12
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||5728
PR|20000308|19510.38
VR|1C3ES46CXYD759823|NEON|2000
IR||19510.38|1276.38
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||5728
PR|20000308|40896.47
VR|1C4GP54LXYB694174|T & C|2000
IR||40896.47|2675.47
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||5728
PR|20000308|40896.47
VR|1C4GP54L9YB694165|T & C|2000
IR||40896.47|2675.47
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||5728
PR|20000308|26480.36
VR|2C3HH56U8YH312484|INTRED|2000
IR||26480.36|1732.36
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||5728
PR|20000308|30055.23
VR|2C3HH76V8YH332402|INTRED|2000
IR||30055.23|1966.23
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||5779
PR|20000308|31088.85
VR|1B4GP44LXYB692450|GRDCAR|2000
IR||31088.85|2033.85
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||5779
PR|20000308|29324.42
VR|1B4GP44L3YB692385|GRDCAR|2000
IR||29324.42|1918.42
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||5779
PR|20000308|29969.63
VR|1B4GP44L4YB692380|GRDCAR|2000
IR||29969.63|1960.63
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||5779
PR|20000308|26063.06
VR|1J4FA49S8YP770334|TJ|2000
IR||26063.06|1705.06
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||5779
PR|20000308|32137.45
VR|2B4GP45R1YR748506|CARAVN|2000
IR||32137.45|2102.45
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||5779
PR|20000308|26480.36
VR|2C3HH56U9YH314292|INTRED|2000
IR||26480.36|1732.36
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||5825
PR|]
bytesRead=[4096] data="">
VR|1B4HS28N3YF246894|DURNGO|2000
IR||41717.16|2729.16
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||5825
PR|20000308|18976.45
VR|1C3ES46C3YD760800|NEON|2000
IR||18976.45|1241.45
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||5880
PR|20000308|28677.07
VR|1B4GP44L9YB655714|GRDCAR|2000
IR||28677.07|1876.07
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||5880
PR|20000308|29485.99
VR|1B7HF16Y71S708479|RAMREG|2001
IR||29485.99|1928.99
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||5880
PR|20000308|32264.78
VR|1J4FF48S7YL234503|CHEROK|2000
IR||32264.78|2110.78
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||5971
PR|20000308|29826.25
VR|1B7HC13Y91J231573|RAMC/Q|2001
IR||29826.25|1951.25
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||5971
PR|20000308|23168.71
VR|2C3HH56U3YH328558|INTRED|2000
IR||23168.71|1515.71
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||5971
PR|20000308|27053.88
VR|2C3HH56U5YH329548|INTRED|2000
IR||27053.88|1769.88
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||6641
PR|20000308|30806.37
VR|1B7GG2AX4YS708799|DAKQUD|2000
IR||30806.37|2015.37
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||6641
PR|20000308|25799.84
VR|2B4GP2532YR759689|CARAVN|2000
IR||25799.84|1687.84
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||6641
PR|20000308|25799.84
VR|2B4GP2533YR759684|CARAVN|2000
IR||25799.84|1687.84
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||6641
PR|20000308|25799.84
VR|2B4GP2538YR759681|CARAVN|2000
IR||25799.84|1687.84
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||7075
PR|20000308|34913.03
VR|1B7HF13Y11J224799|RAMC/Q|2001
IR||34913.03|2284.03
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||7075
PR|20000308|36681.74
VR|1B7KF23ZX1J227785|RAMC/Q|2001
IR||36681.74|2399.74
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||7078
PR|20000308|25959.27
VR|2B4GP2536YR759484|CARAVN|2000
IR||25959.27|1698.27
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||7078
PR|20000308|27213.31
VR|2C3HH56U1YH329496|INTRED|2000
IR||27213.31|1780.31
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||7088
PR|20000308|23437.28
VR|1B7GL22X0YS709555|DAKR/C|2000
IR||23437.28|1533.28
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||7088
PR|20000308|23437.28
VR|1B7GL22X2YS709556|DAKR/C|2000
IR||23437.28|1533.28
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||7088
PR|20000308|23437.28
VR|1B7GL22X4YS709557|DAKR/C|2000
IR||23437.28|1533.28
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||7088
PR|20000308|23437.28
VR|1B7GL22X5YS709552|DAKR/C|2000
IR||23437.28|1533.28
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||7088
PR|20000308|23437.28
VR|1B7GL22X7YS709553|DAKR/C|2000
IR||23437.28|1533.28
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||7088
PR|20000308|23437.28
VR|1B7GL22X9YS709554|DAKR/C|2000
IR||23437.28|1533.28
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||7088
PR|20000308|26725.39
VR|2B4GP2430YR748207|GRDCAR|2000
IR||26725.39|1748.39
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||7542
PR|20000308|47334.66
VR|1B7MF336X1J228925|RAMC/Q|2001
IR||47334.66|3096.66
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER ]
bytesRead=[4096] data="">
BR|BANK OF MONTREAL|000124162
DR||7542
PR|20000308|25799.84
VR|2B4GP2535YR759508|CARAVN|2000
IR||25799.84|1687.84
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||7542
PR|20000308|25799.84
VR|2B4GP2538YR759633|CARAVN|2000
IR||25799.84|1687.84
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||7554
PR|20000308|26725.39
VR|2B4GP2432YR759628|GRDCAR|2000
IR||26725.39|1748.39
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||7554
PR|20000308|25799.84
VR|2B4GP2534YR759614|CARAVN|2000
IR||25799.84|1687.84
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||7951
PR|20000308|25959.27
VR|2B4GP2535YR759640|CARAVN|2000
IR||25959.27|1698.27
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||7951
PR|20000308|25959.27
VR|2B4GP2539YR759639|CARAVN|2000
IR||25959.27|1698.27
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||8519
PR|20000308|44577.27
VR|1B7KF23601J219572|RAMC/Q|2001
IR||44577.27|2916.27
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||8519
PR|20000308|46995.47
VR|1B7KF23671J227815|RAMC/Q|2001
IR||46995.47|3074.47
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||8519
PR|20000308|49702.57
VR|1B7MF33781J216734|RAMC/Q|2001
IR||49702.57|3251.57
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||8535
PR|20000308|36803.72
VR|1B4HS28N7YF236286|DURNGO|2000
IR||36803.72|2407.72
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||8535
PR|20000308|34174.73
VR|1B7GG2AN9YS704357|DAKQUD|2000
IR||34174.73|2235.73
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||8580
PR|20000308|41244.22
VR|1B4HS28N2YF246319|DURNGO|2000
IR||41244.22|2698.22
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||8580
PR|20000308|26725.39
VR|2B4GP2439YR725069|GRDCAR|2000
IR||26725.39|1748.39
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||8647
PR|20000308|32055.06
VR|1B7KC23Z51J231686|RAMC/Q|2001
IR||32055.06|2097.06
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||8647
PR|20000308|32055.06
VR|1B7KC23Z71J231687|RAMC/Q|2001
IR||32055.06|2097.06
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||8647
PR|20000308|46553.56
VR|1B7KF23691J221756|RAMC/Q|2001
IR||46553.56|3045.56
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||8647
PR|20000308|21835.49
VR|1C3ES46C1YD760102|NEON|2000
IR||21835.49|1428.49
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||9029
PR|20000308|26526.37
VR|1B4GP44L0YB683238|GRDCAR|2000
IR||26526.37|1735.37
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||9029
PR|20000308|26526.37
VR|1B4GP44L8YB689997|GRDCAR|2000
IR||26526.37|1735.37
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||9303
PR|20000308|26494.27
VR|1B4GP44LXYB689175|GRDCAR|2000
IR||26494.27|1733.27
TR
HR|810|P||20000307|071034|CREDIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||9303
PR|20000308|42457.60
VR|1B4HS28N5YF198654|DURNGO|2000
IR||42457.60|2777.60
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||9303
PR|20000308|35740.14
VR|1B7HF13Z91J213798|RAMC/Q|2001
IR||35740.14|2338.14
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||9303
PR|20000308|22166.12
VR|1C3ES46CXYD776637|NEON|2000
IR||22166.12|1450.12
TR
HR|810|P||20000307|071034|DEBIT
MR|CHRYSLER CANADA|2479
BR|BANK OF MONTREAL|000124162
DR||9303
PR|20000308|22166.12
VR|1C3ES46CXYD776640|NEON|2000
IR||22166.12|1450]
bytesRead=[692] data="">



-----Original Message-----
From: Stas Bekman [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, March 04, 2003 5:54 PM
To: Liu, Hui (GXS)
Cc: [EMAIL PROTECTED]
Subject: Re: Trouble with sysread in modperl


Liu, Hui (GXS) wrote:
> There appears to be a bug with the read and sysread functions when being
> used in a loop to read STDIN.  We're using a loop to read from STDIN in
> 4k blocks, and the read or sysread appears to work great until the very
> last read to pick up the final partial block.  Here is the code:
>
>    $readSize = &min($bytesLeft, $blockReadSize);                         
>    $bufferLength  = length($buffer);                                     
>    $bytesRead = sysread(STDIN, $dataRead, $readSize);                    
>    &html("bytesRead=[$bytesRead . $bufferLength . $dataRead]") if ($debug);
>    if (!(defined $bytesRead)) {                                          
>        $bytesRead = 0;                                                   
>    }                                                                     
>    $buffer .= $dataRead;                                                 
> In the last loop, the values that are returned in the debug statement
> are:   674 . 3268 .
> So sysread says that 674 bytes were read, however $dataRead is empty. 
> Both read and sysread exhibit the same behavior, returning the right
> number of bytes to be read, but not populating the variable with the
> actual data.  This code works fine in versions of Perl other than Apache
> modperl.  Has anyone experienced this behavior and have any suggestions?

Could it be the buffering issue as described in the manpage?

perldoc -f sysread:

        sysread FILEHANDLE,SCALAR,LENGTH,OFFSET
        sysread FILEHANDLE,SCALAR,LENGTH
                Attempts to read LENGTH characters of data into variable SCALAR
                from the specified FILEHANDLE, using the system call read(2).
                It bypasses buffered IO, so mixing this with other kinds of
                reads, "print", "write", "seek", "tell", or "eof" can cause
                confusion because stdio usually buffers data.  Returns the num-
                ber of characters actually read, 0 at end of file, or undef if
                there was an error.  SCALAR will be grown or shrunk so that the
                last byte actually read is the last byte of the scalar after
                the read.
                [...]

can you try whether you get all the data, by reading via <STDIN> (even though
you have no control over chunks size)



__________________________________________________________________
Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/     mod_perl Guide ---> http://perl.apache.org
mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com

Reply via email to