Why does my circuit work on a breadboard, but not on a perfboard? I am new to soldering
Everyone here is right. The perf board you are using does not contain the connections between pads like the bread board. If you got rid of the solder mask you would see something like this:
You have to make the connections manually or buy this type of perf board. Notice how it has the connections made in copper?
You actually did a good job on the soldering
The problem is that the board you are using, unlike the breadboard, has no connection for a given row of pads. You have to add wires or solder shorts on the back to make the connections you want.
A perfboard is not like a breadboard. A perfboard is called so, because it has holes in it, it is perforated!
So the whole perfboard contains only holes and no connections between any holes (unlike the breadboard). You have to interconnect the holes yourself.
In this case, you have to connect the two leads of the resistor to two jumpers. The first step is to solder every individual component on the perfboard. You did this step correctly!
Second step is to make connections between the soldered leads. In this case, you have soldered two resistor leads and two jumper leads. To connect leads together, you have to solder another wire between them, or you can just use a solder joint between them, i.e., connect the two leads only using solder.
The purple lines represent the connections you should make, i.e., the wires you should place externally to connect the required perfboard pads:
This is how you can connect adjacent holes using solder bridges. Source: How to make traces on an universal PCB?. Look at the answer by JYelton.
Also, you can use wires to solder holes together like this - Source: How to make traces on an universal PCB?. Look at the answer by Passerby.