[Question]
  [
With the given text below, there are some words in the text that repeats several times in the text. Use any programming language to write a short code that compresses the text to display it. Or in other words, use the smallest number of bytes to display the text.  
The Text is: 
```
Peter Piper picked a peck of pickled peppers.
A peck of pickled peppers Peter Piper picked.
If Peter Piper picked a peck of pickled peppers,
Where's the peck of pickled peppers Peter Piper picked?
```
  
[Answer]
# [R](https://www.r-project.org/), 106 bytes
```
"["=gsub
cat(1["Peter Piper picked",2[" peck of pickled peppers","1 a2.
A2 1.
If 1 a2,
Where's the2 1?"]])
```
[Try it online!](https://tio.run/##HYqxCoAgFEV3v@LxlgpE0D2isa2tQRpKnxUFidr3m7UcOOfekDNqbLf4rMwsqZYaR0oUYDx8oT/MSRa50giezAm3@9tFtrgvl4gcJSxKsF6BFGxw8Cln006BqghppzJ0OM9Nzi8 "R – Try It Online")
[Answer]
# [Jelly](https://github.com/DennisMitchell/jelly), ~~80 73 72 68 67 61~~ 57 [bytes](https://github.com/DennisMitchell/jelly/wiki/Code-page)
```
“¡ŀṪ]ṃ{yṁ“Ñ3$ṘW5Ḍż⁸¢Hŀ“³ḌM“¡FỊİg“ÑɲʋØƥþƈƘ}“ṣɠ»“Ƙ9~ḷ’ṃFḊ”?
```
**[Try it online!](https://tio.run/##y0rNyan8//9Rw5xDC482PNy5Kvbhzubqyoc7G4FChycaqzzcOSPc9OGOnqN7HjXuOLTI42gDSO1moIgvWJPbw91dRzakg1Wf3HSq@/CMY0sP7zvWcWxGLVDs4c7FJxcc2g1kHZthWfdwx/ZHDTOBFrg93NH1qGGu/f//AA "Jelly – Try It Online")**
### How?
```
“...“...“...“...“...“...»“Ƙ9~ḷ’ṃFḊ”? - Main Link: no arguments
“...“...“...“...“...“...»            - list of compressed strings
                                     -   = [" Peter Piper picked",
                                     -      " peck of pickled peppers",
                                     -      ".\nA",
                                     -      ".\nIf",
                                     -      ",\nWhere's the",
                                     -      " a"]
                         “Ƙ9~ḷ’      - base 250 literal X = 2331781969
                               ṃ     - base decompress - i.e. use the list of strings as if
                                     -   they were the digits [1,2,3,4,5,0]
                                     -   X in base 6 is [1,0,2,3,2,1,4,1,0,2,5,2,1], so:
                                     -   [" Peter Piper picked",
                                     -    " a",
                                     -    " peck of pickled peppers",
                                     -    ".\nA"," peck of pickled peppers",
                                     -    " Peter Piper picked",
                                     -    ".\nIf",
                                     -    " Peter Piper picked",
                                     -    " a",
                                     -    " peck of pickled peppers",
                                     -    ",\nWhere's the",
                                     -    " peck of pickled peppers",
                                     -    " Peter Piper picked"]
                                F    - flatten
                                 Ḋ   - dequeue (remove the leading space)
                                  ”? - literal '?' character (causes print of previous)
                                     - implicit print (of the '?' character)
```
[Answer]
# [Bubblegum](https://esolangs.org/wiki/Bubblegum), ~~73~~ 71 bytes
```
00000000: 0b48 2d49 2d52 08c8 2c00 9205 99c9 d9a9  .H-I-R..,.......
00000010: 290a 890a 05a9 c9d9 0af9 6960 819c d414  ).........i`....
00000020: 20bf 0028 5fac c7e5 884b 4a01 d31c 3d2e   ..(_....KJ...=.
00000030: cf34 0552 8cd7 e10a cf48 2d4a 552f 5628  .4.R.....H-JU/V(
00000040: c948 25c1 227b 00                        .H%."{.
```
[Try it online!](https://tio.run/##dY9BSwQxDIXv/oqHIKzgxLTTzjSC93G9LehV23S6CHrckz9@zDi74MV3eKQl@fJSTqV8zsfT17LwWQ/gEhJ8DWIWPTipPZUZ4jlCRAVVsgA0dU/dgeiONl1tBGcML5yRVuNorSpVwLkJBhkYyYmiBheAW7ro4/0Pw68MLg1WJsSWFTrOESmFgpDZofZO0Vc/w4LQ7m0dft6bPV4YvTG09cEi2BlJ64jZWSJt230Z9t8QB9sACnT4jTF1@5f7192ZEVaGrP1RHbwfiyXCP6Lphq6/aVl@AA "Bubblegum – Try It Online")
[Answer]
# [JavaScript (SpiderMonkey)](https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/Releases/45), 114 bytes
```
print(`0 a1.
A1 0.
If 0 a1,
Where's the1 0?`.replace(/\d/g,n=>+n?' peck of pickled peppers':'Peter Piper picked'))
```
[Try it online!](https://tio.run/##Hcm9DoIwFAbQnae4WyEiP6uJEkc3NhcHmvZDKlBubhsTn76i48l56bcORhzHY2BnIevmZ3xSYnE@5kNDuq2ya0tNld1G@rHM7hMEKlCcsEc3VAJetEFeP2z9LP35cvCdIoaZaRuJnZkX2N3MkKBOqkeEUO92/hdWFUVKXw "JavaScript (SpiderMonkey) – Try It Online")
I would claim this answer is from [ovs](https://codegolf.stackexchange.com/users/64121/ovs), anyway, 19 bytes saved.
Thanks [Arnauld](https://codegolf.stackexchange.com/users/58563/arnauld), saves 3 bytes.
[Answer]
# [Python 2](https://docs.python.org/2/), 115 bytes
```
a="Peter Piper picked"
b=" peck of pickled peppers"
print a,"a%s.\nA"%b+b,a+".\nIf",a,"a%s,\nWhere's the"%b+b,a+"?"
```
[Try it online!](https://tio.run/##K6gsycjPM/r/P9FWKSC1JLVIISCzAEgWZCZnp6YocSXZKikUpCZnK@SngcVyUlOA/AKgkmIlroKizLwShUQdpUTVYr2YPEcl1STtJJ1EbSUgxzNNSQcioxOTF56RWpSqXqxQkpEKV2Ov9P8/AA "Python 2 – Try It Online")
Prints multiple commas-separated strings to put spaces in between them.
---
# [Python 3](https://docs.python.org/3/), 115 bytes
```
print("1 a2.\nA2 1.\nIf 1 a2,\nWhere's the2 1?".translate({49:"Peter Piper picked",50:" peck of pickled peppers"}))
```
[Try it online!](https://tio.run/##K6gsycjPM/7/v6AoM69EQ8lQIdFILybP0UjBEEh5pimABHRi8sIzUotS1YsVSjJSgVL2SnolRYl5xTmJJaka1SaWVkoBqSWpRQoBmQVAsiAzOTs1RUnH1MBKSaEgNTlbIT8NLJiTmgLkFwDVFCvVamr@/w8A "Python 3 – Try It Online")
Python 3's `translate` does the heavy lifting. Using non-printable characters with single-digit ASCII value should save two bytes.
[Answer]
# [Jelly](https://github.com/DennisMitchell/jelly), ~~64~~ ~~60~~ ~~58~~ 57 bytes
```
“¡ŀṪ]ṃ{yṁ“Ñ3$ṘW5Ḍż⁸¢Hŀ»j⁾ a,Ṛẋ2ż“³ḌM“¡FỊİg“ÑɲʋØƥþƈƘ}»FḊ”?
```
[Try it online!](https://tio.run/##y0rNyan8//9Rw5xDC482PNy5Kvbhzubqyoc7G4FChycaqzzcOSPc9OGOnqN7HjXuOLTI42jDod1Zjxr3KSTqPNw56@GubiOgDFD3ZqAaX7Axbg93dx3ZkA7Wf3LTqe7DM44tPbzvWMexGbWHdrs93NH1qGGu/f//AA "Jelly – Try It Online")
[Answer]
# [Bash](https://www.gnu.org/software/bash/), 99
* 4 bytes saved thanks to @manatwork.
```
echo "${P=Peter Piper picked} a${p= peck of pickled peppers}.
A$p $P.
If $P a$p,
Where's the$p $P?"
```
[Try it online!](https://tio.run/##HYpBCoAgFET3nuITQpvoBhIt27lrXTqiGPRJd9HZ7eNmhnnzzqPE1uDiTYN@rbGoeMgmluTkMvxHh37ZEMNlukOnF7xsFql8s1o1k7az2oKU2DypPeLBWKhG9HMZWvsB "Bash – Try It Online")
[Answer]
# [V](https://github.com/DJMcMayhem/V), ~~99~~ 87 bytes
-12 bytes: turns out 2 substitutions are shorter which is basically the same as everyone else's solution (except Bubblegum?)
```
i1 a0.
A0 1.
If 1 a0,
Where's the0 1?Í0/ peck of pickled peppers
Í1/Peter Piper picked
```
[Try it online!](https://tio.run/##K/v/P9NQIdFAj8vRQMFQj8szTQHE1eEKz0gtSlUvVijJSAVK2Esf7jXQVyhITc5WyE9TKMhMzs5JTQHyCwpSi4q5Dvca6geklqQWKQRkAgXA8qkp//8DAA "V – Try It Online")
[Answer]
# [Python 3](https://docs.python.org/3/), ~~120~~ ~~117~~ 116 bytes
```
a,b="Peter Piper picked"," peck of pickled peppers"
exit(f"{a} a{b}.\nA{b} {a}.\nIf {a} a{b},\nWhere's the{b} {a}?")
```
[Format strings](https://tio.run/##K6gsycjPM/7/P1EnyVYpILUktUghILMASBZkJmenpijpKCkUpCZnK@SngUVyUlOA/AKggmIlrtSKzBKNNKXqxFqFxOqkWr2YPEcgpQDkA5meaQowCZ2YvPCM1KJU9WKFkoxUqBJ7Jc3//wE "Python 3 – Try It Online") were shorter than [addition(129 bytes)](https://tio.run/##RYqxDoMwDER3vsLy4qJULJ1RxcjmrUuWKhglogpWyMLXp1EYWE7v7p6e2e/xVQqPyJIlAQetqcFtsmCnI4KK22Bf2/aTpXatylHPFGJ@sCH4klFDg41TAyDDrc7rhZeATxs/XpLQAdkL3uqb@lL@ "Python 3 – Try It Online") and a [join(140 bytes)](https://tio.run/##RYqxDsIwDER3vsLy4laKujBXiJHNGwNlQK2rhCLHSrPw9SFKB5bTu7tn3@yjnkvhEVmyJOBgNS3Mmyx4shHBZN4grm37yFK7VWWvZwqaO6LhHYN2D3YEL3LmaJj02gDIcau39cBDQDfp3UsS2iF7wb96oWffl/ID "Python 3 – Try It Online").
-3 thanks to Jo King,
-1 thanks to Jonathan Allen
[Answer]
# [Java (JDK)](http://jdk.java.net/), 123 bytes
```
v->"".format("%s a%s.%nA%2$s %1$s.%nIf %1$s a%2$s,%nWhere's the%2$s %1$s?","Peter Piper picked"," peck of pickled peppers")
```
[Try it online!](https://tio.run/##PY5BSwMxEIXv@yuG0OCubAN6rVa8CB6EQkEP4iFmkza72SQkk4Ui/e3rdC1eZua99zG8Xk5y3XfDbMcYEkJPWhS0TpjiFdrgxe2miuXbWQXKyZzhTVoPPxXA1c0okdYUbAcjZfUek/WHzy@Q6ZCbBQV4ub57eCeu/UO2YOBxntZbxoQJaZRYM55B8iy4f@b3qwz8bnURr2a5KCKz5f7jqJO@yYBH/Y89sZbtNOoEOxtpRqsG3ZEJUasBglkcpzvSkYDMmnmzdNufMupRhIIiUi@sjZAxulPti3NNc4HO1Xn@BQ "Java (JDK) – Try It Online")
[Answer]
# Twig, 105 bytes
This uses a simple replacement to fill in the gaps.
Twig's `replace()` filter allows you to define the values to replace as the keys of an hash.
Luckly, it also works with arrays, as they have numerical keys.
```
{{"0a1.
A1 0.
If 0 a1,
Where's the1 0?"|replace(["Peter Piper picked"," peck of pickled peppers"])|raw}}
```
The `|raw` is needed to avoid escaping, which turned `Where's` into `Where&#039;s`.
You can try it on <https://twigfiddle.com/phqpts>
---
Since this is compiled down to PHP, the equivalent for PHP would be:
```
<?php
    $array = array("Peter Piper picked", " peck of pickled peppers");
    $string = "0 a1.
A1 0.
If 0 a1,
Where's the1 0?";
    
    echo str_replace(array_keys($array), $array, $string);
```
Which can be shortened significatively.
[Answer]
# [Ruby](https://www.ruby-lang.org/), 104 bytes
```
/ a/=~$a="Peter Piper picked a peck of pickled peppers"
puts"#$a.
A#$' #$`.
If #$a,
Where's the#$' #$`?"
```
[Try it online!](https://tio.run/##LYmxCoAgFAB3v@KhgkvkF0Q0trW19qoXiUEPtaGlXzeJlju4C9d852wBbfNobORAiQIMjgvZLZ5WQGBaPJzbF45SmLj8KAVfKUqlsRad0gaUnmrRb8VYiXGnQCZC2ul/rcz5BQ "Ruby – Try It Online")
[Answer]
# [///](https://esolangs.org/wiki////), 86 bytes
```
/1/Peter Piper picked//2/ peck of pickled peppers/1 a2.
A2 1.
If 1 a2,
Where's the2 1?
```
[Try it online!](https://tio.run/##HYoxDoAgEAR7XnGdjfECHzCWdnTWBJZANJF4/B9Pm0lmduUKUiBjsGWPjod8bcpW44nE7Jga4kl3/tOFpN70IWwpuMVsjuxi9kyfzuYoeDAJ9QId1jFe "/// – Try It Online")
[Answer]
# [C (gcc)](https://gcc.gnu.org/), 123 bytes
```
f(){printf("%s a%s.\nA%2$s %1$s.\nIf %1$s a%2$s,\nWhere's the%2$s %1$s?","Peter Piper picked"," peck of pickled peppers");}
```
[Try it online!](https://tio.run/##S9ZNT07@/z9NQ7O6oCgzryRNQ0m1WCFRtVgvJs9R1UilWEHVUAXE8UwDs4BSQEGdmLzwjNSiVPVihZKMVLgyeyUdpYDUktQihYDMAiBZkJmcnZoCFFQoSE3OVshPA4vkpKYA@QVABcVKmta1/4G2KuQmZuZpaHJVc3ECXWLNVfsfAA "C (gcc) – Try It Online")
[Answer]
# [Clean](https://github.com/Ourous/curated-clean-linux), 166 bytes
```
import StdEnv,Text;f="peck of pickled";g="picked";u="peppers";p="Peter Piper";s=join" "[p,g,"a",f,u+".\nA",f,u,p,g+".\nIf",p,g,"a",f,u+",\nWhere's","the",f,u,p,g+"?"]
```
[Try it online!](https://tio.run/##VY69CsIwFIVfJdzFwasvUIoIOggOBQUHdQjpTY3NH0kq@vLGtC66fec7ZzhCE7fZuHbQxAxXNivjXUjskNqtfeCRnqmSNXgSPXOSeSV6TS1UXXGFRxzG2nsKESpfQ0OJAmtUEVDF@u6UBQZnjx0CB5Q4zGF5sesJsegp7iTg3wQv9nSjQLMICOlGP/MVXPMh8fKyZjG/hdS8i3mx2@fNy3KjxDc0mifpgvkA "Clean – Try It Online")
[Answer]
# [sed](https://www.gnu.org/software/sed/), ~~101~~ 100 bytes
```
s/^/0 a1.\nA1 0.\nIf 0 a1,\nWhere's the1 0?/
s/0/Peter Piper picked/g
s/1/ peck of pickled peppers/g
```
[Try it online!](https://tio.run/##HYqxDkBAEER7X7GdBnv3BaLU6TQiETeOkHOxfP9ZmpnMeyNwpQ9PSsIjG5psNYTGktFqF/pAMYR@xYVc6F6hquZM2HCHGxd1W9SM27zDsVdhmSLmnc7lpwec7qgnYZ/SCw "sed – Try It Online")
-1 byte thanks to @DigitalTrauma
[Answer]
# jq, 110 characters
(106 characters code + 4 characters command line options)
```
"1 a2.
A2 1.
If 1 a2,
Where's the2 1?"|gsub("1";"Peter Piper picked")|gsub("2";" peck of pickled peppers")
```
Sample run:
```
bash-4.4$ jq -nr '"1 a2.
A2 1.
If 1 a2,
Where'"'"'s the2 1?"|gsub("1";"Peter Piper picked")|gsub("2";" peck of pickled peppers")'
Peter Piper picked a peck of pickled peppers.
A peck of pickled peppers Peter Piper picked.
If Peter Piper picked a peck of pickled peppers,
Where's the peck of pickled peppers Peter Piper picked?
```
[Try it online!](https://tio.run/##yyr8/1/JUCHRSI/L0UjBUI/LM00BxNXhCs9ILUpVL1YoyUgFStgr1aQXlyZpKBkqWSsFpJakFikEZBYAyYLM5OzUFCVNqLQRUFqhIDU5WyE/DSyXk5oC5BcAlRYraf7//183rwgA "jq – Try It Online")
[Answer]
# SQL Server, 211
```
declare @a char(18)='Peter Piper picked'
declare @b char(24)=' peck of pickled peppers'
declare @c char=char(10)
print @a+' a'+@b+'.'+@c+'A'+@b+' '+@a+'.'+@c+'If '+@a+' a'+@b+','+@c+'Where''s the'+@b+' '+@a+'?'
```
[db<>fiddle](https://dbfiddle.uk/?rdbms=sqlserver_2017&fiddle=aa49cadbe030dbd774f61739617e7400)
[Answer]
# [Stax](https://github.com/tomtheisen/stax), ~~60~~ 56 [bytes](https://github.com/tomtheisen/stax/blob/master/docs/packed.md#packed-stax)
```
╣lF╤╨┴+Y╟W╪▄,○F«↑•L°T»`┼◄ü√}x![Ñ$Θ☼²qσQ¼▬ôZ¡▄╙╥⌂å╛►¶▓&╗s
```
[Run and debug it](https://staxlang.xyz/#p=b96c46d1d0c12b59c757d8dc2c0946ae18074cf854af60c51181fb7d78215ba524e90ffd71e551ac16935aaddcd3d27f86be1014b226bb73&i=&a=1)
[Answer]
## Windows Batch, 179 bytes
```
4D534346000000009C00000000000000
2C000000000000000301010001000000
000000004200000001000100DF000000
000000000000544DB5682000612E6261
7400E59D45D15200DF00434B73484DCE
C85708482D492D5208C82C00920599C9
D9A9290A890A05A9C9D90AF96960811C
A048416A0150BE588F970BA2C911970A
2CC6C13579A69164990E4C5F78466A51
AA7AB14249462A09D6DA0300
extract %0 .bat
.bat
```
Self-extracting Cabinet file using Batch/CAB polyglot.
The blank line is needed for the batch file processor to find the actual batch code, but can be LF alone instead of CR/LF.
The Cabinet file is just a series of "@echo <string>" lines, and the '@' symbol suppresses the "echo" itself from being displayed.
[Answer]
# T-SQL, 137 bytes
```
SELECT p+a+k+'.
A'+k+' '+p+'.
If '+p+a+k+',
Where''s the'+k+' '+p+'?'
FROM(SELECT'Peter Piper picked'p,' a'a,' peck of pickled peppers'k)b
```
That last return before the `FROM` is for readability only, the rest are part of the string concatenation.
Different method than [SeanC's SQL solution](https://codegolf.stackexchange.com/a/174066/70172).
[Answer]
# [Kotlin](https://kotlinlang.org), 150 bytes
```
var s="Peter Piper picked"
var z=" peck of pickled peppers"
var v=s+" a"+z
var x=z+" "+s
print(v+".\n"+"A"+x+".\n"+"If "+v+",\n"+"Where's the "+x+"?")
```
[Try it online!](https://tio.run/##NY1BDoIwEEX3nGIyGyE1HsBYDUt3JC7cuGlggAYszbQSxHj2Wmvc/Myb/5I/TH7UJrQPA3elTa64c3somdXzcPGsTXcs4BVmxeAkVuSJodI2ptX1QA1m32qVCJbqAaY2/UdqItuouZ8wSycQFIo14SLXiChcZuOEz2eBu5tBgSWK5X@f22jEZpvo2hPTxoHvCZJ0wiK8wwc "Kotlin – Try It Online")
[Answer]
# [Retina 0.8.2](https://github.com/m-ender/retina/wiki/The-Language/a950ad7d925ec9316e3e2fb2cf5d49fd15d23e3d), 85 bytes
```
1 a0.¶A0 1.¶If 1 a0,¶Where's the0 1?
1
Peter Piper picked
0
 peck of pickled peppers
```
[Try it online!](https://tio.run/##K0otycxL/P@fy1Ah0UDv0DZHAwVDIOWZpgAS0Dm0LTwjtShVvVihJCMVKGXPZcgVkFqSWqQQkFkAJAsyk7NTU7gMuBQKUpOzFfLTwCI5qSlAfgFQQfH//wA "Retina 0.8.2 – Try It Online") Same idea as everyone else.
[Answer]
# [Red](http://www.red-lang.org), 116 bytes
```
prin rejoin[a:"Peter Piper picked"" a"b:" peck of pickled peppers"".^/A"b" "a".^/If "a" a"b",^/Where's the"b" "a"?"]
```
[Try it online!](https://tio.run/##LYuxCoNAEER/ZZnGJsTeJqRMJzYWonB6I54GXVb//7wLaYY3wxujjw1910e1sItxPcLeuQo1L5rUQVNqmDZ6QBzGCqKcNjnm3/ylT12TdQLPoXxjhMBl/MwZ8gePoWwXGotTroV/5YU@xhs "Red – Try It Online")
## Explanation:
The job is done by the `rejoin` funcion, which reduces and joins a block of values.
```
prin rejoin [                      ; print the reduced (evaluated) and joined block
    a: "Peter Piper picked"        ; save the text to a
    " a"                           ; literal " a"
    b: " peck of pickled peppers"  ; save the text to b
    ".^/A"                         ; literal newline followed by "A"
    b                              ; " peck of pickled peppers" 
    " "                            ; literal " "
    a                              ; "Peter Piper picked"
    ".^/If "                       ; literal ".^/If "
    a                              ; "Peter Piper picked"
    " a"                           ; literal " a"
    b                              ; " peck of pickled peppers" 
    ",^/Where's the"               ; literal "," folowwed by a newline by "Where's the"  
    b                              ; " peck of pickled peppers"      
    " "                            ; literal " "
    a                              ; "Peter Piper picked" 
    "?"                            ; literal "?"
]
```
[Answer]
# [J](http://jsoftware.com/), 121 bytes
```
echo('1 a2.',CR,'A2 1.',CR,'If 1 a2,',CR,'Where''s the2 1?')rplc('1';'Peter Piper picked';'2';' peck of pickled peppers')
```
[Try it online!](https://tio.run/##LUs9C4MwFPwrb7sGgmDWDqU4uUkX5xJPYhV8RP9/fFqHO@7zVwpjWh@o5Rsq@Obj8Q5S37Id5Sz83/WJmcAme6JtXnBZl2hfPNFxZ5ZuUmOd4szBwmAQZZxlHa904WBebbTBlXIA "J – Try It Online")
[Answer]
# [PHP](https://php.net/), 107 bytes
```
<?=($a="Peter Piper picked")." a".($b=" peck of pickled peppers").".
A$b $a.
If $a a$b,
Where's the$b $a?";
```
[Try it online!](https://tio.run/##HYpBCoAgEEX3nmIYBioIL1ASLdu5a601oRg0lPc3a/Mfn/ckSCnjZFpyBi1nvsFGqStxS7xjpxEc6pa8QRDeElzH707e65eaPl@k1UweyGm1HBXgyPdqDXxz80AO/MsJh1Je "PHP – Try It Online")
[Answer]
# [05AB1E](https://github.com/Adriandmen/05AB1E/wiki/Commands), ~~78~~ ~~76~~ ~~74~~ 72 [bytes](https://github.com/Adriandmen/05AB1E/wiki/Codepage)
```
’0 a1.
A10.
If0 a1,
W€Î's €€10?’TS.•1~¼ ¿•“±æ€‚ ÿÇì“'p0ǝ„íÎ´Œ™„r¾Ð«‚ðì:¦
```
[Try it online.](https://tio.run/##yy9OTMpM/f//UcNMA4VEQz0uR0MDPS7PNBBHhyv8UdOaw33qxQpAGogMDeyB6kKC9R41LDKsO7RH4dB@IOtRw5xDGw8vAylpmKVweP/h9sNA1hz1AoPjcx81zDu89nDfoS1HJz1qAaqcV3Ro3@EJh1YDVR7ecHiN1aFl//8DAA)
**Explanation:**
```
’0 a1.
A10.
If0 a1,
W€Î's €€10?’              # String "0 a1.\nA10.\nIf0 a1,\nWhere's the10?"
TS                        # 10 to digits: ["1","0"]
.•1~¼ ¿•                  # String "pickled"
        “±æ€‚ ÿÇì“        # String "neck of ÿ pepper", where the "ÿ" will 
                          # automatically be replaced with the top value of the stack
                  'p0ǝ    # Replace the character at index 0 with a "p":
                          #  "peck of pickled pepper"
„íÎ´Œ                     # String "peter pipe"
     ™                    # Titlecased: "Peter Pipe"
      „r¾Ð                # String "r picked"
          «               # Merge them together: "Peter Piper pickled"
           ‚              # Pair them together:
                          #  ["peck of pickled pepper","Peter Piper pickled"]
             
            ðì            # Prepend a space before each:
                          #  [" peck of pickled pepper"," Peter Piper pickled"]
              :           # Replace the ["1","0"] with this list of strings
               ¦          # Remove the leading space (and output implicitly)
```
[See this 05AB1E tip of mine](https://codegolf.stackexchange.com/a/166851/52210) to understand why:
* `’0 a1.\nA10.\nIf0 a1,\nW€Î's €€10?’` is `"0 a1.\nA10.\nIf0 a1,\nWhere's the10?"`
* `.•1~¼ ¿•` is `"pickled"`
* `“±æ€‚ ÿÇì“` is `"neck of ÿ pepper"`
* `„íÎ´Œ` is `"peter pipe"`
* `„r¾Ð` is `"r picked"`
[Answer]
# [Haskell](https://www.haskell.org/), 132 bytes
```
g x y=x++y++x
p=g"Peter Piper picked"
q=g" peck of pickled peppers"
a=g" ".("a"++).q
f=p(a".\nA"++p".\nIf "++a",\nWhere's the")++"?"
```
[Try it online!](https://tio.run/##HYrBCoMwEETv@YplL1W2@Aeh9FjoQfDQi5egGyPadE1S0K9PYy/DmzfjTFx4XXOeYIdD70QH0a5ET9hy4gDtLCVlHhYeUW3Fg/CwwMf@5cpj6VI@EZU5V2wqNEhUN5uyWiqDTe/vRcgJDwsFDV57/3Ic@BIhOcaaCG@Y32b2oEG@qUvh6cHmHw "Haskell – Try It Online")
[Answer]
# [C# (.NET Core)](https://www.microsoft.com/net/core/platform), ~~123~~ ~~118~~ 116 bytes
```
v=>@"0 a1.
A1 0.
If 0 a1,
Where's the1 0?".Replace("0","Peter Piper picked").Replace("1"," peck of pickled peppers")
```
[Try it online!](https://tio.run/##XY9BSwMxEIXv8yuGXNzAGnbPa6tSUASFRQ89h@ysHRqTmEkLUvrb1yiI4uXBx/sO7zm5dDHTchAOr/jyIYXeBvhLZhO9J1c4BjH3FCiz@2c8cngfwHkrguMJpNjCDu8OwV1xKK2UXOU1zitcjqv1jerQ9gZue@wMPMz4hS1sd5TpQrDsqBbXyjxT8tZRozrVqpEKZRw51Uzs9jQp/Wv01cBEbo9x/q49TZVTtUXpZYCfTcfIEz5ZDo2GE2zqpejJbDMXqieomZte6wHOcF4@AQ "C# (.NET Core) – Try It Online")
Inspired by @Olivier Grégoire's [java answer](https://codegolf.stackexchange.com/questions/173965/text-compression/173980#173980)
5 bytes saved by @sebbs
[Answer]
# [PHP](https://php.net/), 102 bytes
Basically just change the repeater words or sentences with numbers, and then apply **php-strtr**
```
<?=strtr("0 a 1.
A 1 0.
If 0 a 1,
Where's the 1 0?",["Peter Piper picked","peck of pickled peppers"]);
```
[Try it online!](https://tio.run/##HcmxCoQwFETRPl8xvEaFIFqvIpZ2dhaLxaIjEQUfSf4/uja3OFedptR0bYg@@lwq/FCXpkeNqjTDhhesmRw9s4Do@F@d2K@MjPQYd32q@3JwFSvK5cC1vXByhVKfH2QuPind "PHP – Try It Online")
Or 
# [PHP](https://php.net/), 144 bytes
```
<?=strtr("0 1 25 a 3 of 2l5 4.
A 3 of 2l5 4 0 1 25.
If 0 1 25 a 3 of 2l5 4,
Where's the 3 of 2l5 4 0 1 25?",[Peter,Piper,pick,peck,peppers,ed]);
```
[Try it online!](https://tio.run/##K8go@P/fxt62uKSopEhDyUDBUMHIVCFRwVghP03BKMdUwUSPyxGJpwBRocflmaaARbEOV3hGalGqerFCSUYqpjZ7JZ3ogNSS1CKdgMwCIFmQmZytU5AKJgqAAsU6qSmxmtb//wMA "PHP – Try It Online")
]